C++中的std::string_view在VS中报错(命名空间“std“没有成员“string_view“)

一、报错的地方

1、报错的代码如下:

#include <iostream>
#include <string_view>

int main()
{
    
    
    std::string_view sv("123456789", 5);

    for (const auto& c : sv)
    {
    
    
        std::cout << c << " ";
    }
    std::cout << std::endl;

    std::cout << "size() = " << sv.size() << std::endl;
    std::cout << "data() =  " << sv.data() << std::endl;
    std::cout << "sv.front() = " << sv.front() << std::endl;
    std::cout << "sv.back() =  " << sv.back() << std::endl;
    return 0;
}

2、在以下图片中,可以看到使用std::string_view关键词声明sv变量时,报命名空间"std"没有成员"string_view"的错误:
在这里插入图片描述

二、报错的原因

std::string_view是C++17标准发布后新增的内容,而VS2022在项目属性页中默认的是C++14标准。
在这里插入图片描述

三、解决的方法

1、点击VS项目界面中的“项目”选项,然后在弹出的界面中点击“项目属性”选项,如下图所示:
在这里插入图片描述
2、上一步点击完成后,在弹出的界面中,点击“配置属性 ➨ C/C++ ➨ 语言 ➨ C++语言标准”选项,如下图所示:
在这里插入图片描述
3、上一步点击完成后,在弹出的小界面选择“ISOC++17标准”或者是“ISOC++20标准”选项都可以,如下图所示:
在这里插入图片描述
4、上一步选择好“ISOC++17标准”或者是“ISOC++20标准”选项后,就可以点击“确定”或者“应用”按钮,系统就会保存我们设置的选项。
在这里插入图片描述

四、项目能够正常运行

在经过以上第三大步的设置后,可以看到项目已经没有报错的地方,能够正常的运行,如下图所示:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/jianjianshini/article/details/127888460