gpt4 book ai didi

c++ - 如何打印#define 语句?

转载 作者:行者123 更新时间:2023-11-27 22:29:35 25 4
gpt4 key购买 nike

我怎样才能得到 cerr打印 5 < 6而不是 statement_ ?我可以访问 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();
}
}

最佳答案

您需要使用字符串化运算符:

throw runtime_error(# statement_);

如果 statement_ 可能是一个宏,您需要使用 double stringize trick .

关于c++ - 如何打印#define 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com