[英]Could not convert from brace-enclosed initializer list to std::vector
我看到了很多類似的問題,但我認為我沒有看到相同的問題。 這很基礎。 我的講師的一些代碼無法編譯,我將問題提煉到這個測試用例:
void foo(vector<int> v) {
}
void fooUsage() {
foo({0, 1, 2});
}
這失敗了:
could not convert '{0, 1, 2}' from '<brace-enclosed initializer list>' to 'std::vector<int>
注意:它適用於GCC 5.0.0 20141228但在我的GCC 4.7.1(tdm-1)上失敗。
對不起,如果這太基礎但我不太了解C ++ 11。
事實證明我只需要將-std=c++11
添加到gcc命令行。
注意:我錯誤地認為這是默認開啟的,因為我也收到了一些警告:
extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
看看它是如何“默認啟用”的? 這就是誤導我的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.