首页 > 解决方案 > 适当的止回控制功能

问题描述

我有一个显示一些消息的函数,正确完成程序并最终调用exit(-1);. 这是一个使用示例:

Data SomeFunction()
{
  Data data;
  if (some_condition) {
    // filling the data
    return data;
  }
  ShowErrorAndExit("Some message");
  //return data - I don't want it here!
}

问题是,编译器说:

警告:控制到达非无效函数的结尾

然而,这不是真的,因为永远不会到达这个函数的终点。我不想在函数末尾添加不需要的返回;我还可以做些什么?

标签: c++

解决方案


ShowErrorAndExit应标明[[noreturn]]。这将删除警告。

例子:

[[noreturn]] void ShowErrorAndExit(std::string message) {...}

推荐阅读