मैंने निम्नलिखित कोड को g++
के साथ संकलित किया है, और आउटपुट प्राप्त किया है, जो टिप्पणियों में लिखा गया है।मानव-पठनीय 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"
}
मुझे पता है, कि type_info.name()
standartized नहीं है, लेकिन वहाँ किसी भी तरह से मानव पठनीय परिणाम पाने के लिए है?
कुछ निम्नलिखित की तरह अच्छा होगा enought
const char *
class string
जब तक कोई मानक को अद्यतन नहीं जानता, मुझे पता नहीं है, 'टाइपिड' कार्यान्वयन परिभाषित किया गया है, और इस तरह के मान भी लौटते हैं। यदि यह अब मामला नहीं है तो मैं इसके बारे में और जानना बहुत उत्सुक हूं। तब तक, आपके कंपाइलर के लिए विशिष्ट मैंग्लिंग एल्गोरिदम आपको संभावित रूप से उत्तर (और demangling) की ओर ले जाएगा जो आप खोज रहे हैं। – WhozCraig
यह पूर्ण कार्यान्वयन निर्भर है। माइक्रोसॉफ्ट की सीएल आपके नाम की अपेक्षा के समान नामों का उपयोग करेगी। – oldrinb
संबंधित http://stackoverflow.com/questions/81870/is-it-possible-to-print-a-variables-type-in-standard-c –