![](/img/trans.png)
[英]If statements on compile-time const value
我想讓代碼包含在基於編譯時常量值的函數中,但是static_if不是C ++中的構造。 所以我可以這樣寫函數 而且我想保證編譯器具有兩個功能。 一種是將“ if(flag)a ++”編譯到函數中,另一種則不是。 是否有可能基於C ++ 17標准獲得此保證,還是由編譯器供應商 ...
[英]If statements on compile-time const value
我想讓代碼包含在基於編譯時常量值的函數中,但是static_if不是C ++中的構造。 所以我可以這樣寫函數 而且我想保證編譯器具有兩個功能。 一種是將“ if(flag)a ++”編譯到函數中,另一種則不是。 是否有可能基於C ++ 17標准獲得此保證,還是由編譯器供應商 ...
[英]Is there a C++ programming technique which is an approximate equivalent of a runtime #ifdef?
例如,我在某些代碼中有一個函數調用,我希望能夠根據自己的喜好啟用/禁用它。 通常,我可以只使用一個if,但是它每次都會檢查該函數是否可以運行,這是我不希望的。 我只是希望代碼永遠不要執行該檢查。 ifdef塊可能很雜亂且很臟,它們堆積起來並使代碼難以閱讀。 我不能用某種模板解 ...
[英]static_if in C99's preprocessor
是否可以在C99中實現static_if? 如何在這里正確實現STATIC_IF(…) ? 根據COND ,參數應該傳遞給MACRO1或MACRO2 ,但兩個宏的參數看起來不同。 COND是靜態可測試的,類似sizeof (…) > 42 。 #if COND然后#d ...
[英]Avoid function call on compile time false condition
我希望能夠避免在條件為false時調用函數,這在編譯時已知。 現在我使用這樣的東西: 我不喜歡這種方法,即使函數體是空的,也會評估params 。 我想要一個解決方案,當根本沒有調用該函數時,當條件為假時,不會對params進行求值(這可能在第一種情況下使用空函數進行優化,但我不 ...
[英]Will static_if deprecate template specialization?
一些通常的模板專業化如下: 可以用static_if表示為: 這些是直接競爭的功能嗎? 模板專業化可以做一些static_if不可以嗎? 似乎static_if可以完成模板專業化所能做的一切,還有更多。 static_if且不說:我在這種情況下並不喜歡static_if ...
[英]Faking Static If in C++
我正在測試各種優化的組合,對於這些我需要靜態 - 如http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Static-If-I-Had-a-Hammer中所述並禁用特定的優化。 if(const-expr)並不總是有效,因為 ...
[英]static if in plain c++?
問題簡而言之: 如何在c ++ 11中用普通c ++實現static if功能? 歷史和原始問題: 最近我提出了這樣的問題。 我需要一個類似於接口的類Sender 在某些情況下,我需要創建一個DoubleSender ,即這個類的一個實例,它會調用它的方法兩次,即在調用時 ...
[英]Is D's “static if” declarative or procedural?
請考慮以下代碼: 我最初的理解是, 聲明的順序(在全球范圍內)在D中無關緊要 。 但是,在這種情況下, static if的順序決定了程序是否編譯。 因此,D的編譯時評估階段是程序性特征(如C / C ++),聲明性特征還是其他什么? 目前是什么,計划是什么(如果兩者不同) ...
[英]Are there other languages besides D with static if?
我認為D是static if是一個有趣的語言特征。 這提示了我的問題:是否還有編譯語言的其他示例,其中編譯器具有強大的代碼概念,並且有語言工具可以訪問它們? 例如,此代碼提供類似於Python的repr : 我認為這很酷,因為它允許一種不同的,更通用的方法來實現重載,這是一種讓代 ...