这个错误意味着什么以及为什么我不能使用大括号初始化列表来初始化这个结构?不幸的是,结构是自动生成的。
\n// Contains no functionality, purely documentative.\nstruct NativeTable {};\n\n...\n\nstruct TableKeyT : public flatbuffers::NativeTable {\n typedef TableKey TableType;\n std::string exp{};\n std::string type{};\n std::string ext{};\n};\n\n...\n\nTableKeyT key { std::string(sym), std::string(ex), std::string("") };\nRun Code Online (Sandbox Code Playgroud)\n[build] ../../../src/io/socket.cpp:102:39: error: initializer for \xe2\x80\x98flatbuffers::NativeTable\xe2\x80\x99 must be brace-enclosed\n[build] 102 | TableKeyT key { std::string(sym), std::string(ex), std::string("") };\n[build] | ^~~\nRun Code Online (Sandbox Code Playgroud)\n
由于TableKeyT继承NativeTable,您还需要初始化基类,但由于它是一个空类,因此使用{}应该没问题。
TableKeyT key { {}, std::string(sym), std::string(ex), std::string("") };
//^^^
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |