Güvenli-bool deyim C 11 kullanılmıyor?
This answer of @R. Martinho Fernandes güvenli-bool deyim apperently C basit tarafından değiştirilebilir olarak 11, kaldırılmış olduğunu gösterir
explicit operator bool() const;
cevap §4 [conv] p3
: standart teklif göre
İfade e örtülü bir tip ve eğer Bildirgesi
T t=e;
iyi biçimlendirilmiş ise, icat edilmiş bir geçici değişken içint
T
(madde 8.5) dönüştürülebilir. Bazı dil yapıları ifadesi Boolean bir değere dönüştürülmesi gerekir. Bir ifadee
böyle bir ortamda görünen olduğu söyleniyorçevreye dönüştürülür7 ** veilan sadece eğer iyi biçimlendirilmiş isebool t(e);
iyi biçimlendirilmişbazı icat geçici değişken t (madde 8.5).
Vurgulanan bir bölümü açıkça göstermektedir "örtülü açık dökme" ("bağlamsal" standart) @R. olarak Martinho koy dönüştürme.
"Bazı dil yapıları" gerektiren "açık döküm" gibi görünüyor şu: . örtülü
if
,while
,for
(§6.4 [stmt.select] p4
)- ikili mantıksal operatörler
&&
||
(§5.14 [expr.log.and/or] p1
) - mantıksal olumsuzluk operatörü
!
(§5.3.1 [expr.unary.op] p9
) - koşullu operatör
?:
(§5.14 [expr.cond] p1
) static_assert
(§7 [dcl.dcl] p4
)noexcept
(§15.4 [except.spec] p2
)
Başlık bizim varsayım doğru mu? Olası sakıncaları göz ardı etmedik umarım.
CEVAP
Evet. Buörneğin sorunları ile sadece örtülü olan kullanıcı tanımlı dönüştürme ve açık bir kullanıcı tanımlı dönüştürme operatörleri vardı resmen invented because of this problem ve yerine tüm güvenli-bool malzeme ile bir şey çok daha temiz ve daha mantıklı.
SecureRandom iş parçacığı güvenli mi?...
Print senkronize/güvenli iş parçacığı?...
Güvenli -1 true tüm bitlerini ayarlama...
Neden't Sözlük<bool? bir, için...
Meyers Singleton deseni uygulama iş pa...