Using gcc, when I ask for an object/variable\'s type using typeid, I get a different result from the type_info::name method from what I\'d expect to get on Windows. I Google
Based on this other question Is there an online name demangler for C++? I've written a online tool for this: c++filtjs
If it's what you're asking, there is no compiler switch that would make gcc behave like msvc regarding the name returned by type_info::name()
.
However, in your code you can rely on the gcc specific __cxa_demangle
function.
There is in fact an answer on SO that addresses your problem.
Reference: libstdc++ manual, Chapter 40. Demangling.
c++ function names really include all the return and argument type information as well as the class and method name. When compiled, they are 'mangled' into a standard form (standard for each compiler) that can act as an assembler symbol and includes all the type information.
You need to run a function or program to reverse this mangling, called a demangler.
try running
c++filt myoutput.txt
on the output of the function. This demangles the real symbol name back into a human readable form.