constant-expression

    4熱度

    1回答

    從N4140§5.19/ 2.3(重點煤礦) - 一個未定義 constexpr函數的調用或 未定義 constexpr構造; 從§7.1.5/ 2 constexpr功能和構造被隱式地內聯,也就是說,如果一個constexpr功能沒有在TU中定義的代碼將只是沒有編譯。

    0熱度

    2回答

    我試圖圍住它,但放棄了。你能否請你解釋一下以下內容,摘自Mike Banahan的C書(Section 7.3.7 Conditional compilation)。儘管多方努力,但我無法掌握之後的部分「構成......的令牌序列」。。能否請您簡單來說 1)到底是什麼「中定義的」前綴的事情, 2)什麼用的名字,甚至C關鍵字信息減少到零的狀態(不要忘記混亂引用的sizeof) ? 用一小段代碼解釋會

    1熱度

    1回答

    一個芯常量表達式的定義取決於常量表達式的概念作爲可在要點(2.7.1)和可見(2.9.1)的N4140。 §5.19/ 2: 甲條件表達式e爲芯常量表達式除非的e的 評價,下列的抽象機(1.9)的規則, 將評估的一個下面的表達式: ... (2.7.1) - 積分或枚舉類型的非易失性glvalue該 指與常量表達式 初始化之前的初始化非易失性const對象, ... (2.9.1) - 它與一個常

    1熱度

    1回答

    我有一個函數可以創建std::bitset,它的長度是一個常量函數參數。它不起作用,因爲常數不是「整數常量表達式」。有什麼辦法可以使這項工作? 參考: void Foo(const std::string &data, const unsigned int size) { std::bitset<size> Bar(data); // Do something ret

    1熱度

    2回答

    陣列我有以下代碼: #include <iostream> using namespace std; int main() { unsigned int endx = 5; unsigned int endy = 5; unsigned int endz = 5; int Matrix[endx+1][endy+1][endz+1] = {};

    19熱度

    1回答

    最近當answering a question我意識到逗號操作被允許在恆定表達C++11只要表達通過()包圍,例如: int a[ (1, 2) ] ; Pre C++11它被禁止使用逗號運算符以一個常量表達式,來自草案前C++ 11標準部分5.19常量表達式其中說(強調我的): [...]特別地,除了在sizeof表達式,函數,類 對象,指針或引用不應被使用,並且指配, 遞增,遞減,函數調用

    5熱度

    1回答

    假設我有一個場景,我需要確保在我的代碼中使用的值是編譯時常量(例如,可能是對P10 rule 2「固定循環邊界」的嚴格解釋)。我如何在C語言級別執行此操作? C在語言級支持整數常量表達式的概念。必須有可能找到一種方法來利用這一點,以便只有符合此規範的值才能用於表達式中,對嗎?例如: for (int i = 0; i < assert_constant(10); ++i) {... 一些局部的

    0熱度

    1回答

    這是Combinatorial synthesis: Better technology mapping results的後續問題。 我使用Yosys(0.5+ (git sha1 f13e387, gcc 5.3.1-8ubuntu2 -O2 -fstack-protector-strong -fPIC -Os)版)以下的合成腳本: read_liberty -lib my_library.li

    -1熱度

    1回答

    當我從教程做了一個例子,我從常量變量topic中得到了一些問題。 如果有人解釋我的例子,我會很感激。

    0熱度

    1回答

    這裏被簡化我的應用程序的設置: class Engine { void run(); { // main program loop while (state != gameState::quit) step<state>(); // ERROR } template<gameState> void step() {} // emp