Libreria C ++ Type_info - operator == Funzione
Descrizione
Restituisce se i tipi identificati da due oggetti type_info sono gli stessi.
Dichiarazione
Di seguito è riportata la dichiarazione per std :: type_info :: operator ==
C ++ 98
bool operator== (const type_info& rhs) const;
C ++ 11
bool operator== (const type_info& rhs) const noexcept;
Parametri
rhs - Identifica il tipo di oggetto.
Valore di ritorno
Restituisce se i tipi identificati da due oggetti type_info sono gli stessi.
Eccezioni
No-throw guarantee - questa funzione membro non genera mai eccezioni.
Gare di dati
L'oggetto locale viene modificato.
Esempio
Nell'esempio seguente per std :: type_info :: operator ==.
#include <iostream>
#include <typeinfo>
struct Base {};
struct Derived : Base {};
struct Poly_Base {virtual void Member(){}};
struct Poly_Derived: Poly_Base {};
typedef int my_int_type;
int main() {
std::cout << std::boolalpha;
std::cout << "int vs my_int_type: ";
std::cout << ( typeid(int) == typeid(my_int_type) ) << '\n';
std::cout << "Base vs Derived: ";
std::cout << ( typeid(Base)==typeid(Derived) ) << '\n';
Base* pbase = new Derived;
std::cout << "Base vs *pbase: ";
std::cout << ( typeid(Base)==typeid(*pbase) ) << '\n';
Poly_Base* ppolybase = new Poly_Derived;
std::cout << "Poly_Base vs *ppolybase: ";
std::cout << ( typeid(Poly_Base)==typeid(*ppolybase) ) << '\n';
return 0;
}
L'output dovrebbe essere così -
int vs my_int_type: true
Base vs Derived: false
Base vs *pbase: true
Poly_Base vs *ppolybase: false