У меня странная ошибка компиляции при использовании оператора условия.
a,b
имеют значение int
, и следующее выражение получает ошибку компиляции.
(a>b)?( std::cout << a ) : ( b=MAX );
16 (b <unknown operator> 5)'
(a>b)?( a=MAX ) : ( std::cout<<b );
16 (&std::cout)->std::basic_ostream<_CharT, _Traits>::operator<< [with _CharT = char, _Traits = std::char_traits<char>](b)'
Но это выражение работает хорошо, что странно ..
(a>b)?( std::cout << a ) : ( std::cout<<b );
Я понятия не имею, что делает такую разницу, и не знаю, почему ошибка компиляции. Вот моя информация о gcc:
Reading specs from ./../lib/gcc/mingw32/3.4.2/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=
mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable
-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --e
nable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-ja
va-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchroniz
ation --enable-libstdcxx-debug
Thread model: win32
gcc version 3.4.2 (mingw-special)`