我有以下(修改后的(代码,我想在其中创建一个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++核心指南中的这个项目。