[英]No member named 'size' in namespace 'std'
我正在嘗試將一些C ++代碼從Windows移植到OS X(使用Xcode)。
以下代碼:
writePosition %= std::size(bufferL);
正在生成錯誤:
命名空間'std'中沒有名為'size'的成員
我該如何解決?
std::size()
從C ++ 17開始可用。 嘗試為編譯器啟用-std=c++17
。
另外,請直接或通過#include
以下任何標頭間接檢查源文件是否包含#include <iterator>
:
<array>
<deque>
<forward_list>
<list>
<map>
<regex>
<set>
<string>
<string_view>
<unordered_map>
<unordered_set>
<vector>
從cppreference獲取信息,我看到std::size
接受兩種參數:具有名為size()
(來自stl或用戶定義)和固定大小數組的方法的容器。
您應該檢查bufferL
是否是其中之一。
如果bufferL
是一個固定大小的數組,並且你沒有包含任何包含stl容器的頭文件,你還必須包含iterator
頭文件。
為了能夠使用std::size
您必須確保包含#include <iterator>
。 您需要檢查的另一件事是編譯器支持C ++ 17。 此功能僅適用於符合C ++ 17標准的編譯器。
將IDE中的編譯器設置更改為支持C ++ 17的編譯器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.