El siguiente código explica el problema. Complete en same_sub_class para detectar si los dos punteros a la clase base virtual A son, de hecho, la misma clase concreta de .En C++ compruebe si dos instancias de una clase base son de hecho de la misma subclase
struct A {
...
}:
struct B : public A {
...
}:
struct C : public A {
...
}
bool same_sub_class(A * a1, A * a2){
// Fill this in to return true if a1 and a2 are
// of the same concrete class
}
EDIT:
Cuando miro a mi solicitud necesito algo ligeramente diferente de la anterior. Necesito poder agrupar instancias por su type_id.
FYI. Tengo un mini sistema simbólico de algerbra, así que para hacer manipulaciones es importante conocer el tipo de clase a veces para clasificar y reorganizar expresiones.
Así que se le da un vector de punteros a la instancia de cómo agruparlos por su type_id. Tendría que poder hash el type_id o generar un entero único para cada clase.
suena como lo que realmente necesita es una int estática en cada clase para ordenar por? –