我有以下(修改后的)代码,我想在其中创建对象数组std::string_view。
对应每一行编译时我看到这个错误
\nunable 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,\nRun 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}\nRun Code Online (Sandbox Code Playgroud)\n 我看过一个例子,显示为
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)
即第一个元素。