The 2nd and 3rd operands to the conditional operator must be of the same type. If one of the two can be converted to the other, the conversion will occur. Note: if a conversion exists for each of the operands into the other's type, the program is ill-formed.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
structFoo
{
int x;
operatorint()
{
return21;
}
};
intmain(intargc, char**argv)
{
Foo f;
f.x = 11;
std::cout << (0?3:f) << std::endl;
return0;
}
Enter to Rename, Shift+Enter to Preview
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.