C++ NOEXCEPT之前应为初始值设定项

C++ NOEXCEPT之前应为初始值设定项,c++,C++,我在noexcept之前遇到了一个预期初始值设定错误,我正在Windows10上运行这段代码 我试着添加支架,但没有用,我无法找到解决问题的方法 const static std::vector<std::pair<StatusCode, std::string> > status_codes() noexcept { const static std::vector<std::pair<StatusCode, std::string>

我在noexcept之前遇到了一个预期初始值设定错误,我正在Windows10上运行这段代码

我试着添加支架,但没有用,我无法找到解决问题的方法

const static std::vector<std::pair<StatusCode, std::string> > status_codes()       
  noexcept
{
 const static std::vector<std::pair<StatusCode, std::string> > status_codes = {
    } 
}   
[错误]在“noexcept”之前应为初始值设定项
[错误]输入结尾应为“}”

静态向量定义后缺少分号:

#include <vector>
#include <string>

using StatusCode = int;

const static std::vector<std::pair<StatusCode, std::string> > status_codes()
  noexcept
{
 const static std::vector<std::pair<StatusCode, std::string> > status_codes = {
    };
 return status_codes;
}
不要忘记总是从非void函数中返回一些东西


也不要说你至少需要C++11或更高版本的兼容编译器来编译你的代码。

。编译器是为C++的较旧版本设计的。noexcept需要C++11。欢迎使用SO。在提问之前,请始终检查代码的语法。另外,我觉得你应该多查阅C++文学,因为你似乎需要掌握更多的基础知识。例如,我假设您希望从静态函数中返回对常量向量的引用。否则,当返回一个完整的新向量实例时,您不必在函数中创建一个静态向量,每次都要从中复制。否则,永远不要返回对自动变量的引用,即非静态函数变量。我认为这是理所当然的,并认为这只是因为他的语法错误。但这里不仅没有例外需要C++11。