考虑以下功能:
void checkPlayerCounter() {
if (playerCounter != consts::numberOfPlayers) {
throw std::runtime_error("Detected " + std::to_string(playerCounter)
+ " player instead of " + std::to_string(consts::numberOfPlayers));
}
}
该函数可能会抛出,并且出于可读性考虑,我想在头文件中的函数声明中强调这一点。我怎样才能做到这一点?
我正在寻找类似的东西:
void checkPlayerCounter() may throw;
最佳答案
您可以显式使用noexcept(false)
。在您建议的位置:
void checkPlayerCounter() noexcept(false);
不幸的是,没有办法避免使用
noexcept
的双重否定。另一个选择是评论:void checkPlayerCounter(); // may throw
也就是说,除非另有说明,否则读取声明的任何人都应始终假定该函数可以抛出。