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