Question

Reading the documentation of the ternary operator, I've realized that there are two special cases that I've never used:

  • you can use it with functions that return void : bool ? void : void
  • you can throw inside a ternary operator

So is the following valid, completely defined, and oftenly used (assuming that this is a class member, and the class owns a Type _data[Size]) ?

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

Solution

Your example is valid and well-defined (assuming suitable definitions of Size and _data). As to "oftenly used" - I personally have never seen such a construct before, for what it's worth.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top