创建 string_view 元素数组引发错误:找不到字符串文字运算符"运算符" " sv"



我有以下(修改后的(代码,我想在其中创建一个std::string_view对象数组。

我在编译对应于每行时看到这个错误

unable to find string literal operator ‘operator""sv’ with ‘const char [8]’, ‘long unsigned int’ arguments
"Sensor2"sv,

代码:

#include <iostream>
#include <array>
#include <string_view>
struct Abc
{
static constexpr std::array<std::string_view, 6> SomeValues = {
"Sensor1"sv,
"Sensor2"sv,
"Actuator1"sv,
"Actuator2"sv,
"Cpu1"sv,
"Cpu2"sv
};

};

int main()
{
Abc abc;

std::cout << abc.SomeValues[3];
return 0;
}

您需要using namespace std::literals;,这是可以的,与using namespace std;不同。

另请参阅StackOverflow上的这个问题,最重要的是,C++核心指南中的这个项目。

最新更新