[英]C++ struct initialization assertion fails
#include <cassert>
#include <string>
struct AStruct
{
int x;
char* y;
int z;
};
int main()
{
AStruct structu = {4, "Hello World"};
assert(structu.z == ???);
}
我應該寫什么來代替???
有一個成功的斷言?
我用assert(structu.z == 0);
但不幸的是得到了錯誤int main(): Assertion 'structu.z == 0 failed.Aborted'
你要:
assert(structu.z == 0);
您的代碼分配給 z 成員而不是對其進行測試。 如果您確實收到了您編輯的問題所說的消息,那么您的編譯器就壞了。 哪一個?
通過“成功”,我假設您的意思是不會創建錯誤消息的。 你可能想要:
assert(structu.z == 0);
請注意,我使用的是==
,而不是=
。
這個斷言不應該觸發,因為給出的代碼, structu.z
保證等於0
。
assert(structu.z == 0)
應該可以工作,因為成員z
將被初始化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.