次のコード:C++ 11とGCC 4.7でコンパイルC++ストリームで三項演算子を使用しても構いませんか?
#include <iostream>
using namespace std;
struct A{int number=10;};
int main()
{
A* a = new A();
cout<<"A val: "<< a==nullptr?"":a->number<<endl;
}
が与える:
error: invalid operands of types 'int' and '' to binary 'operator <<'
私はそれを行うための適切な方法にはどのようになるか、理由を理解していませんか?私は彼らが非常に一般的であることを期待して、できるだけ短いヌルチェックをしたい。
ほとんどの人にとって、三項演算子は[驚くほど低い優先順位](http://en.cppreference.com/w/cpp/language/operator_precedence)です。私の提案:それが何をするかを絶対に確信していないときはいつでも、避けてください:あなたの同僚はあなたに感謝します。 – Wolf