Ho compilato il codice seguente con g++
e ottenuto l'output, che è scritto nei commenti.leggibile dall'uomo type_info.name()
template<class T>
void foo(T t) { cout << typeid(t).name() << endl; }
int main() {
foo("f"); //emits "PKc"
foo(string()); //emits "Ss"
}
lo so, che non è type_info.name()
standartized, ma c'è un modo per ottenere risultati leggibili?
qualcosa come il seguente sarebbe bene enought
const char *
class string
A meno che qualcuno non conosca un aggiornamento dello standard di cui non sono a conoscenza, 'typeid' è definito dall'implementazione, e come tale i valori che restituisce. Se questo non è più il caso, sono molto curioso di saperne di più a riguardo. Fino a quel momento, l'algoritmo di mangling specifico per il compilatore ti condurrà probabilmente alla risposta (e al problema) che stai cercando. – WhozCraig
È totalmente dipendente dall'implementazione. Cl di Microsoft utilizzerà nomi simili a quello che ti aspetti. – oldrinb
correlati http://stackoverflow.com/questions/81870/is-it-possibile-in-prodotto-a-variabile-tipo-in-standard-c –