2015-09-23 42 views
0

我對C++相對來說比較陌生,所以很簡單。當assert得到的東西評估爲false時,我在終端中得到:C++如何聲明一個字符串的訪問輸入

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

assert如何獲取輸入爲字符串?不會斷言「看到」是真是假?

+3

可能重複[如何使用宏參數作爲字符串?](http://stackoverflow.com/questions/10507264/how-to-use-macro-argument-as-string-literal) –

+0

你是什麼assert語句看起來像,將代碼添加到問題 - 答案在於該信息 – Soren

+0

我想刪除它,因爲這個問題沒有添加更多東西已經回答。 –

回答

1

您可以將自己的assert版本實現爲一個宏。這可能是也可能不是你的編譯器如何實現它。

由於#something將擴大到它的字符串化版本,你可以這樣做:

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

更多信息請參見GCC docs