Pon la clase A y B en el mismo programa para compilarlos con el mismo compilador.
Luego cambia tu main() para que invoque a una funcion que ejercite el mismo codigo para los 2 tipos de clases, por ejemplo asi:
Código C++:
Ver originaltemplate <typename T>
int testf(T dummy){
cout << "Comienzo test " << endl;
vector<T> vb;
for(int j=0;j<200;j++){
cout << j << " Insertando 50000 elementos " << endl;
for(int i=0;i<50000;i++){
vb.push_back(T(1024));
}
cout << j << " Eliminando 50000 elementos " << endl;
for(int i=0;i<50000;i++){
vb.pop_back();
}
}
cout<<"Terminado"<<endl;
return 0;
}
int main(){
A a;
B b;
testf(a);
testf(b);
return 0;
}
Has profiling de ese programa y verifica que los constructores se esten llamando igual cantidad de veces.
En un asunto paralelo, este constructor
esta copiando dentro de buf y, si se está construyendo, ¿adonde apunta buf?
La clase A tiene un constructor similar.
Hay otros posibles problemas, pero estan mas relacionados con problemas que no se han presentado (aun) y no con los que muestras aqui, por ejemplo, copiar usando strcpy, mejor memcpy o strncpy, etc.