小编Nav*_*ore的帖子

创建 string_view 元素数组会引发错误:无法找到字符串文字运算符 'operator""sv' with

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

\n

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

\n
unable to find string literal operator \xe2\x80\x98operator""sv\xe2\x80\x99 with \xe2\x80\x98const char [8]\xe2\x80\x99, \xe2\x80\x98long unsigned int\xe2\x80\x99 arguments\n         "Sensor2"sv,\n
Run Code Online (Sandbox Code Playgroud)\n

代码:

\n
#include <iostream>\n#include <array>\n#include <string_view>\n\nstruct Abc\n{\n    static constexpr std::array<std::string_view, 6> SomeValues = {\n        "Sensor1"sv,\n        "Sensor2"sv,\n        "Actuator1"sv,\n        "Actuator2"sv,\n        "Cpu1"sv,\n        "Cpu2"sv\n    };\n    \n};\n\n\nint main()\n{\n    Abc abc;\n    \n    std::cout << abc.SomeValues[3];\n\n    return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

c++ string-view c++17

3
推荐指数
1
解决办法
4363
查看次数

sizeof() 函数后跟方括号

我看过一个例子,显示为

int n = sizeof(0)["abcdefghij"];
cout<<n;
Run Code Online (Sandbox Code Playgroud)

方括号里的那个东西是什么意思?我在某处读过(0)["abc"]相当于("abc")[0]. 意思是上面的表达式很简单

n = sizeof("abcdefghij")[0]; 
Run Code Online (Sandbox Code Playgroud)

即第一个元素。

c++

2
推荐指数
1
解决办法
110
查看次数

标签 统计

c++ ×2

c++17 ×1

string-view ×1