创建 string_view 元素数组会引发错误:无法找到字符串文字运算符“operator”“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;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要
using namespace std::literals;
,这是可以的,与使用命名空间 std;
不同。另请参阅StackOverflow 上的这个问题,而且最重要的是此项目来自 C++ 核心指南。
You need
using namespace std::literals;
, which is ok, unlikeusing namespace std;
.See also this question on here StackOverflow, and, most importantly, this item from the C++ Core Guidelines.