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ı?
Bu ifadeye eşdeğerdir: 'std :: numeric_limits' ifadesi ortogonaldir. – erip
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
Ayrıca not std :: boolalpha'. – o11c