2016-04-01 39 views
0

std :: numeric_limits öğesinde birkaç şey deniyordum. Ve bazı ilginç davranışlar gözlemledi.std :: numeric_limits <int> :: has_infinity + Koşullu üçlü operatör

cout << "Min = " << (std::numeric_limits<int>::has_infinity) ? "TRUE" : "FALSE"; 

çıkışları 0

cout << "Min = " << (std::numeric_limits<int>::has_infinity ? "TRUE" : "FALSE"); 

çıkışları FALSE

başlangıç ​​pozisyonunu fark edip ilk vaka üçlü operatörü olarak std::numeric_limits

etrafında () parantez sona Lütfen herhangi bir anlamı vardı vermedi . Braketi sonuna kadar değiştirdiğimde, sadece üçlü operatörün (?:) anlamlı olduğu bulunmuştur.

Bu davranışın neden olduğuyla ilgili herhangi bir girdi var mı?

+2

Bu ifadeye eşdeğerdir: 'std :: numeric_limits' ifadesi ortogonaldir. – erip

+1

Derleme, " struct std :: numeric_limits" şablonunu şablon parametresi olmadan kullandığını "Hata:‘ şablon yapılamıyor "<< Min =" << (std :: numeric_limits :: has_infinity)? "TRUE": "FALSE"; – v7d8dpo4

+2

Ayrıca not std :: boolalpha'. – o11c

cevap

İlgili konular