簡體   English   中英

無法從大括號括起來的初始化列表轉換為std :: vector

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM