为什么会出现错误:size不是std的成员?

时间:2019-11-18 13:38:06

标签: c++ arrays size

#include <iostream> // for std::cout
#include <iterator> // for std::size

int main()
{
    int array[] = { 1, 1, 2, 3, 5, 8, 13, 21 };
    std::cout << "The array has: " << std::size(array) << " elements\n";

    return 0;
}

当我运行这段代码时,我得到了一些类似size不是std的成员的信息。任何意见,不胜感激。

1 个答案:

答案 0 :(得分:3)

您的编译器不支持C ++ 17或没有通过编译器选项激活这种支持

在任何情况下,您都可以使用在标题std::extent中声明的标准类模板<type-traits>。例如

#include <iostream> // for std::cout
#include <type_traits> // for std::extent

int main()
{
    int array[] = { 1, 1, 2, 3, 5, 8, 13, 21 };
    std::cout << "The array has: " << std::extent<decltype( array )>::value << " elements\n";

    return 0;
}