出于调试目的,我想打印模板参数的值。
对于类型模板参数,我可以使用typeid(T).name()
,它会(或多或少)将类型T
的名称作为字符串。
有没有办法为指针到成员模板参数获取类似的字符串(例如" &Parent::member
")?我不能在这里使用typeid
,因为指针不是类型。
调试字符串应包含成员的名称以及父级的类型名称。
答案 0 :(得分:1)
默认情况下,变量/成员名称不会写入编译对象文件。所以这些信息在编译过程中丢失了,你无法得到它。唯一的例外是如果使用调试信息进行编译,但即使是这种情况,执行时也不会使用exe加载调试信息。
我看到两种可能的解决方案: