constexpr

    2熱度

    1回答

    我想寫可以這樣使用的編譯時的valarray: constexpr array<double> a = { 1.0, 2.1, 3.2, 4.3, 5.4, 6.5 }; static_assert(a[0] == 1.0, ""); static_assert(a[3] == 4.3, ""); static_assert(a.size() == 6, ""); 我設法用下面的實施

    11熱度

    1回答

    你更換 const int one = 1; const int two = 2; 這個? constexpr int one = 1; constexpr int two = 2; 我的理解是正確的,這兩個塊具有相同的語義,它目前的味道只是一個事? 在另一方面,作爲constexpr意味着const,你可以認爲它是比較一致的總是傾向於更嚴格的形式,即使在平凡的情況下它不會有所作爲?

    13熱度

    2回答

    這是this topic的一些後續處理,並涉及其中的一小部分。和上一個主題一樣,讓我們​​考慮我們的編譯器具有std::initializer_list和std::array的constexpr函數。現在,讓我們直接點。 This works: #include <array> #include <initializer_list> int main() { constexpr

    1熱度

    3回答

    測試一個簡單的UTF8 strlen函數,是頗爲吃驚,樹幹鐺完全消除它(GCC不): static int strlenutf8(const char* s) { int i = 0, l = 0; while (s[i]) { if ((s[i] & 0xc0) != 0x80) l++; l++; } return j;

    9熱度

    3回答

    當我嘗試編譯下面的代碼時,出現鏈接器錯誤:Undefined symbols for architecture x86_64: "Foo()", referenced from: _main in main.o使用LLVM 4.2。 此功能僅在功能標記爲constexpr時發生。當功能標記爲const時,程序將正確編譯和鏈接。爲什麼聲明函數constexpr會導致鏈接器錯誤? (我知道寫的函數這種

    4熱度

    1回答

    是否有可能根據某個東西是否爲常量表達式來覆蓋函數和/或模板? 基本上我想要做的是建立一個字符串類,如果在一個遞給一個靜態字符串或constexpr變量指向,它會簡單地使用指針,以後不會嘗試將其刪除。另一方面,如果類傳遞了緩衝區,它需要複製它或採用它,然後在析構函數中將其刪除。 我認爲最接近的可能是使用強類型定義,並要求程序員在該typedef下聲明他/她的靜態字符串。我想知道,如果那些比我更聰明的

    0熱度

    1回答

    我將我的代碼庫的許多位操作函數轉換爲constexpr。沒有真正的理由這樣做,主要是因爲'。 在C++ 11中編寫一個函數constexpr需要代碼是一個單一的表達式,這並不總是可能的(並且並不總是需要)。 無論如何,我有一些麻煩,使用此功能: //Given a binary value like 00000100011, fills every bit below the highest '1

    2熱度

    1回答

    調用以下函數extract對g ++ 4.9.0(20130421)不起作用。我得到的錯誤是s1不是一個常量表達式。如果i可以初始化爲constexpr,那麼j和k也應該如此。那是錯的嗎? #include <tuple> template <unsigned N1, unsigned N2> constexpr bool strmatch(const char (&s1)[N1], con

    4熱度

    1回答

    是否有任何C++ 11 constexpr常量可用來代替<cmath>中的常量宏,即常量如M_PI和朋友?或缺乏,在運行時提供這些常量的任何全局const值?

    8熱度

    1回答

    之間的差異在回答this question,我嘗試用gcc下面的代碼(code compiled)和鐺(code rejected): typedef long (*func)(int); long function(int) { return 42; } struct Test { static constexpr func f = &function; }; temp