C++如何将访问输入断言为字符串

How does C++ assert access input as a string

我对 C++ 比较陌生,所以不要着急。当 assert 得到计算结果为 false 的东西时,我在终端得到这个:

test: test.cpp:185: void test(): Assertion `actual == testing` failed.
Aborted

assert 如何获取字符串形式的输入?不会断言 "see" 是真还是假?

您可以将自己的断言版本实现为宏。这可能是也可能不是您的编译器实现它的方式。

由于 #something 将扩展为它的字符串化版本,您可以这样做:

#define str(s) #s
#define assert(x) if(!x) {print(".... Assertion `" str(s) "` failed.")

有关详细信息,请参阅 GCC docs