c++ - 返回抛出三元运算符?

标签 c++ c++11 ternary-operator throw

<分区>

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

  • 您可以将它与返回 void 的函数一起使用:bool ?无效:无效
  • 你可以在里面放一个三元运算符

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

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

最佳答案

您的示例有效且定义明确(假设 Size_data 的定义合适)。至于“经常使用”——我个人以前从未见过这样的结构,不管它值多少钱。

关于c++ - 返回抛出三元运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17767706/

相关文章:

c++ - 如何调试输出指向成员的指针?

objective-c - 如何在Objective-C的宏中使用三元运算符?

c++ - 如何找到 vector 元素的乘积?

java - Java 中的三元运算符仅评估自 Java 7 以来的一个表达式 - 在 Java 1.6 及更低版本中是否有所不同?

c++ - 三元运算符的第二个或第三个参数为空白或什么都不做

c++ - 在2D vector 中使用第三个[]有什么目的?

c++ - 如何将流读入 Concurrency::streams::streambuf<uint8_t> 缓冲区;在 C++ 中

c++ - `iterator` 和 `const_iterator` 不是 STL 容器的必需成员吗?

c# - 如何通过 COM 从 C# 将 2 个字符串列表传递给 C++?

c++ - 是直接初始化还是复制初始化?