编译器独立的类名

Bom*_*maz 5 c++ gcc boost visual-studio c++17

我需要打印一个类的名称,例如

template<typename... Args>
struct S{};
Run Code Online (Sandbox Code Playgroud)

使用typeid(S<int,std::vector<double>>).name()其相当简单的方法来打印具有代表性的内容。使用boost demangle甚至可以在gcc上读取。

有什么方法可以获取名称,因此不同的编译器之间的名称相同吗?

Mar*_*low 3

并不真地。一般来说,重整名称是特定于编译器的。请参阅维基百科上标题为“不同编译器如何处理相同函数”的表格