cost 194 ms
C ++安全bool包裝器

[英]C++ safe bool wrapper

我正在嘗試設計一個應用安全bool習語的bool包裝器結構。 解決這個問題的經典實現非常簡單:骨架可能是這樣的: 我試圖改進的部分是如何構建Bool 。 例如,我想通過設計避免隱式縮小: 我試圖用模板傷害自己,但沒有成功。 我怎么能讓它工作? ...

安全布爾多次轉換含糊不清

[英]Safe bool multiple conversions ambiguity

為了支持沒有explicit關鍵字的編譯器(例如MSVC 2012),我必須實現安全的布爾習慣用法。 對於bool應該可檢查的類正在對指向許多類的指針進行建模,因此應將其轉換為這些指針。 以下代碼說明了這種想法: 如果我們使用基於explicit operator bool()的ex ...

加強安全bool成語?

[英]Safe bool idiom in boost?

boost庫是否提供了安全bool習語的實現,以便我可以從中派生我的類? 如果是的話 - 在哪里? 如果不是 - 除了自己實施之外我有什么其他選擇? 我發現了以下類似的問題:“ 在boost中是否有安全的bool成語助手? ”並且接受的答案建議在Boost.Operators ...

boost :: bool_testable <>是否已重定位或移除了?

[英]Was boost::bool_testable<> relocated or removed?

我正在嘗試利用boost::bool_testable&lt;&gt; (來自Boost.Operators)來為一個類實現安全的布爾習慣用法,但是該庫的最新版本(截至本文發布時為1.49)似乎沒有它了。 去哪了 現在是否有更好的替代方法可供使用,而我只是錯過了? 我無法使用C + ...

安全bool習語和顯式操作符bool之間的不兼容性

[英]Incompatibilities between safe bool idiom and explicit operator bool

我正在考慮用已經使用C ++ 11特性的代碼中的explicit operator bool替換所有安全bool習語的實例(因此老編譯器不識別顯式轉換運算符的事實並不重要),所以我想想知道它是否會引起一些微妙的問題。 因此,從舊的和沉悶的安全bool成語切換到新的閃亮的explicit o ...

安全布爾習語 bool_type(和安全布爾習語)如何工作?

[英]How does the safe bool idiom bool_type (and the safe bool idiom) work?

我指着“安全布爾成語”,並試圖破譯后是怎么回事(說明該網站上提供的是不足夠的,足以給予我的,為什么它的工作原理的理解),我決定嘗試采取以下代碼並盡量簡化它。 該網站提供的代碼如下: 我決定分析 'bool_type' 的關鍵基礎,因為這似乎是它的中心。 鑒於以下行: 可以(不太容易,由於括號 ...

“&amp;&amp;”和“||”運算符的“上下文轉換”如何與用戶定義的運算符重載一起工作?

[英]How does “contextual conversion” with `&&` and `||` operators work in conjunction with user-defined operator overloads?

來自@ Xeo的優秀c++-faq問題: 在C ++ 11中,安全布爾的成語是否過時了? 我了解到不再需要安全的bool習慣用法,因為在C ++ 03中需要安全bool的上下文中將自動調用explicit用戶定義的bool轉換。 但是,能夠重載運算符,如&amp;&amp; , || ...

C++11 中的安全布爾習語是否已過時?

[英]Is the safe-bool idiom obsolete in C++11?

@R的這個答案。 Martinho Fernandes表明,安全布爾成語在 C++11 中明顯被棄用,因為它可以用一個簡單的替換 根據答案§4 [conv] p3中的標准報價: 當且僅當聲明T t=e;時,表達式 e 可以隱式轉換為類型T ; 對於某些發明的臨時變量t (§8.5),格式良好。 ...

C ++安全布爾值成語無法與Visual C ++ 10(2010)一起編譯

[英]C++ safe boolean idiom cannot compile with Visual C++ 10(2010)

嗨,大家好,我從本頁的C ++安全布爾成語類派生了我的類: 比約恩·卡爾森(Bjorn Karlsson)的《安全布爾成語》 當我嘗試在如下的if表達式中使用它時 我收到錯誤C2451:類型為'Element'的條件表達式非法 。 如果我嘗試像下面這樣將其轉換為布爾值,則會出現 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM