我想将字符串值传递给名为TEST_FAIL
的宏。我尝试了以下代码
string error = "myError";
TEST_FAIL(error.c_str());
TEST_FAIL("myError");
但是输出是
error.c_str()
"myError"
如何在两行中输入字符串error
的第一行值,即"myError"
?
我使用来自库的宏来定义如下
#define TEST_FAIL(msg) \
{ \
assertment(::Test::Source(__FILE__, __LINE__, (msg) != 0 ? #msg : "")); \
if (!continue_after_failure()) return; \
}
答案 0 :(得分:1)
答案 1 :(得分:0)
宏中的#运算符将输入参数转换为字符串,因此传递error.c_str()将完全打印出来," error.c_str()"。有关详细信息,请参阅此处。