constexpr

    5熱度

    1回答

    我使用下面的代碼來訪問一些MCU寄存器。 #include <stdint.h> struct MCU { struct Timer { volatile uint8_t r1; template<int N> struct Address; }; }; template<> struct MCU::Timer::Address<0> {

    3熱度

    1回答

    大約有類似的問題,但沒有constexpr功能我發現直接回答這個問題。 我想實現一個constexpr函數是這樣的: constexpr int Foo(int x) { static const int table[128] = { 3, 1, 4, 1, 5, ..., 99 }; return (0 <= x && x < 128) ? table[x] : 42; }

    1熱度

    2回答

    我正在處理實體組件系統,並試圖根據組件類本身派生多少類來創建組件類型編號。 但我認爲在C++中有一些缺失的功能可以滿足我的所有需求。 因爲組件類的數量應該是一些constexpr整數,我應該用來分隔向量,位掩碼等... 現在我可以讓每個派生類有一個唯一的類型號,但不能檢測到的大小bitset是派生類的數量。 基地: //! //! \class ComponentBase //

    2熱度

    1回答

    我四處逛逛這個片段困惑: constexpr int f(bool b) { return b ? throw 0 : 0; } constexpr int f() { return f(true); } 直接從c++ draft。 我困惑的一點是爲什麼該標準定義爲不合格的constexpr函數沒有參數(在同一鏈接中聲明)的情況。 任何人都可以澄清?

    0熱度

    1回答

    我爲我的一個項目使用了「固定類型編譯時間列表」。最近我測試了這個項目與不同編譯器的兼容性,我注意到clang(3.8)不能編譯我的實現。 這個錯誤出現了: error: expected expression return List<T, sizeof...(Ints1) + sizeof...(Ints2)>(this->get<Ints1>()..., rhs.get<Ints2>()..

    28熱度

    1回答

    C++ 1z將引入「constexpr if」 - 根據條件,如果將刪除其中一個分支。看起來合理而有用。 但是,沒有constexpr關鍵字是不可能的?我認爲在編譯期間,編譯器應該知道在編譯期間是否知道情況是否已知。如果是這樣,即使是最基本的優化級別也應該刪除不必要的分支。 例如(見godbolt:https://godbolt.org/g/IpY5y5): int test() { c

    -1熱度

    1回答

    我玩了一些avr微控制器和C++ 14。當試圖爲io引腳實現一個C++包裝時,我偶然發現了一個錯誤。 這個想法是,讓包裝以sfr爲模板參數,以便編譯器輕鬆優化(不希望有一個額外的函數,並使用模板參數,我可以指示給編譯器,我的參數應該總是編譯時可評估)。我想,可以有一個引用一些編譯時已知地址的變量。但下面不工作(的定義是從AVR採取包括): #include <avr/io.h> constex

    0熱度

    2回答

    我正在尋找一種方式(最好是遞歸)來添加兩個整數與他們的MSB對齊。 例如:125 + 25 = 375 我試圖扭轉位有效對準他們,但賬面是完全錯誤的。即。 526(625)+ 05(50)= 531。

    10熱度

    2回答

    下面的代碼編譯失敗live on Ideone: #include <iostream> using namespace std; int main() { const double kPi = 3.14; constexpr double kPi2 = 2.0*kPi; cout << kPi2; } 的錯誤信息是: prog.cpp: In funct

    0熱度

    1回答

    我想構建DX 12示例代碼,但出現以下錯誤。 任何解決方案?