C++ 如何打印#define语句?
如何让C++ 如何打印#define语句?,c++,macros,c-preprocessor,stringification,C++,Macros,C Preprocessor,Stringification,如何让cerr打印5
cerr
打印5<6
而不是语句
?我可以使用Boost和Qt
using namespace std;
#define some_func( statement_ ) \
if( ! statement_ ) \
{ \
throw runtime_error( "statement_" ); \
} \
int main()
{
try
{
some_func( 5 < 6 );
}
catch(std::exception& e)
{
cerr << e.what();
}
}
使用名称空间std;
#定义一些函数(语句)\
如果(!语句u3;)\
{ \
抛出运行时错误(“语句”)\
} \
int main()
{
尝试
{
一些函数(5<6);
}
捕获(标准::异常&e)
{
哦,我发现了
这是最后的工作代码=):
#包括
#包括
#定义一些函数(语句)\
如果(!语句u3;)\
{ \
throw std::runtime_错误(#statement_u)\
/*注:#,无引号!^^^^^*/\
} \
int main(int argc,字符**argv)
{
尝试
{
一些函数(5<6);
}
捕获(标准::异常&e)
{
哦,我发现了
这是最后的工作代码=):
#包括
#包括
#定义一些函数(语句)\
如果(!语句u3;)\
{ \
throw std::runtime_错误(#statement_u)\
/*注:#,无引号!^^^^^*/\
} \
int main(int argc,字符**argv)
{
尝试
{
一些函数(5<6);
}
捕获(标准::异常&e)
{
std::cerr您需要使用stringize操作符:
throw runtime_error(# statement_);
如果语句
可能是宏,则需要使用。您需要使用stringize操作符:
throw runtime_error(# statement_);
如果语句
可能是宏,则需要使用