投掷三元运算符?

Vin*_*ent 3 c++ ternary-operator throw c++11

阅读三元运算符的文档,我意识到有两个我从未使用过的特殊情况:

  • 您可以将它与返回void的函数一起使用: bool ? void : void
  • 你可以扔进一个三元运算符

以下是有效的,完全定义的,经常使用的(假设这是一个类成员,并且该类拥有一个Type _data[Size])?

Type& at(const unsigned int i) 
{
    return (i < Size) ? (_data[i]) : (throw std::out_of_range("ERROR"));
}
Run Code Online (Sandbox Code Playgroud)

Igo*_*nik 5

您的实例是有效的和明确的(假设合适的定义Size_data).至于"经常使用" - 我个人以前从未见过这样的结构,因为它的价值.