C++ 可以在C+中使用assert+,详细显示classname::function(参数)?

C++ 可以在C+中使用assert+,详细显示classname::function(参数)?,c++,gcc,assert,C++,Gcc,Assert,在使用assert时,是否可以获取该函数的类名和参数 目前,我只尝试了只显示函数名称的\uuuuuuu函数 是否可以显示Dummy::Func(int param1)而不是Func 我期待一个g++编译器的解决方案,谢谢 至少在GCC上,有一个\uuuu PRETTY\u FUNCTION\uuuu,它可以满足您的要求 但它不是预处理器宏,因此很可能不会在assert()中展开。当然,除非您使用的是一个相当旧的G++.+1版本,否则\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

在使用assert时,是否可以获取该函数的类名和参数

目前,我只尝试了只显示函数名称的
\uuuuuuu函数

是否可以显示
Dummy::Func(int param1)
而不是
Func


我期待一个g++编译器的解决方案,谢谢

至少在GCC上,有一个
\uuuu PRETTY\u FUNCTION\uuuu
,它可以满足您的要求


但它不是预处理器宏,因此很可能不会在assert()中展开。当然,除非您使用的是一个相当旧的G++.

+1版本,否则
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu函数,这是您能得到的最好的(除了新的C++0x
\uuuuuuuuuuuuuu。请注意,gcc认为函数名宏不是常量表达式(这通常无关紧要,但在某些情况下确实如此——例如,如果像我一样,您认为自己非常聪明,并在自己的RTTI系统中使用
\uuuu pretty\u function\uuuuu
constexpr
散列,这会让您大吃一惊)。