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çintT(madde 8.5) dönüştürülebilir. Bazı dil yapıları ifadesi Boolean bir değere dönüştürülmesi gerekir. Bir ifadeebö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ı.

Nasıl şifre HTTP üzerinden güvenli bir...
Eclipse güvenli depolama...
Nerede iş parçacığı için güvenli bir C...
TLS güvenli kanal -- SABUN SSL/için gü...
Neden vektör<bool>::'t bool...