在返回unordered_map的函数上使用`noexcept`

man*_*rc3 1 c++ noexcept

将函数声明为noexcept初始化并返回a 是否安全std::unordered_map<int, string>.举个例子:

std::unordered_map<int, std::string> get_raw_num_map() noexcept
{
  return std::unordered_map<int, std::string>(
    {{1, "one"}, {2, "two"}, {3, "three"}, {4, "four"}, {5, "five"}, {6, "six"}, {7, "seven"}, {8, "eight"},
     {9, "nine"}, {10, "ten"}, {11, "eleven"}, {12, "twelve"}, {13, "thirteen"}, {14, "fourteen"}, {15, "fifteen"},
     {16, "sixteen"}, {17, "seventeen"}, {18, "eighteen"}, {19, "nineteen"}, {20, "twenty"}, {30, "thirty"},
     {40, "forty"}, {50, "fifty"}, {60, "sixty"}, {70, "seventy"}, {80, "eighty"}, {90, "ninety"},
     {100, "hundred"}, {1000, "thousand"}});
}
Run Code Online (Sandbox Code Playgroud)

小智 6

在C++中构建大多数集合类型都可以抛出,如果没有别的话,分配失败.因此返回一个函数也可以抛出,不应该声明noexcept.