constexpr

    0熱度

    2回答

    我有一個模板類,確保基本上只能用2個枚舉中的1個實例化。現在我想根據它實例化的枚舉設置初始化器中模板參數的值。這樣的事情: enum class MyFirstEnum { red, green, orange }; enum class MySecondEnum { blue, yellow, red }; template <class T> class MyClass {

    3熱度

    2回答

    我想從「設計模式」編譯一個例子,我面臨着以下問題: 我有一個基類網站地圖: class MapSite{ public: MapSite(); virtual ~MapSite(); virtual void Enter() = 0; }; 和派生類中房: class Room : public MapSite final{ private: u

    -1熱度

    1回答

    我添加了下面的成員在我的課: constexpr static folly::Unit nullUnit {}; 這裏的蠢事鏈接::單位:上一個標誌 https://github.com/facebook/folly/blob/master/folly/Unit.h 根據的,我會返回folly :: unit或nullUnit: if (mutate_resp->processed()

    0熱度

    2回答

    以下代碼顯示如何使用constexpr operator++()(預增量)(live demo)。現在我想知道是否有什麼用於宣佈後增量運算符爲constexpr。我認爲這樣的操作員沒有副作用,並且以與示例中類似的方式使用。 (如果這是過於抽象。我打算延長我的bitset2類,並想知道是否會有任何好處,如果遞​​增運算符是constexpr) struct S { constexpr S(

    10熱度

    2回答

    我習慣於用enum { my_const = 123; }來定義我的常量,因爲在類中,使用static constexpr需要類定義之外的一些代碼(請參閱this question)。但是 - 在函數體中呢?最近我已經注意到人們只是有constexpr變量及其功能(甚至沒有打擾到他們const實際上),我想知道我是否是一個傻瓜誰與我 int foo(int x) { enum : in

    3熱度

    1回答

    我想聲明陣列成員變量的長度,使用類別的恆定靜態變量。如果我做的: // A.h #include <array> using namespace std; class A { array<int,LENGTH> internalArray; public: const static int LENGTH; }; // A.cpp #include "A.h"

    3熱度

    1回答

    我開始嘗試使用constexpr。 我想要實現的是驗證literal數值 作爲ctor參數提供。 我開始用下面扔如果構建MyStruct 與價值< = 4 constexpr int validate(int v) { return (v > 4) ? v : throw exception(); }; struct MyStruct final { constexp

    1熱度

    1回答

    美好的一天!請幫我爲我的代碼,我儘量讓constexpr類常量指針在今後的非恆定和變化不恆定的變量,我compilator說 "error: ‘Actuator{const Pin{1ul, 1ul}, const Pin{1ul, 2ul}, const Pin{1ul, 3ul}, ((velocity_type*)(& velocity))}’ is not a constant expre

    1熱度

    1回答

    替代宏在我們公司中的代碼,我們使用64位的標誌枚舉: enum Flags : unsigned long long { Flag1 = 1uLL<<0, // 1 //... Flag40 = 1uLL<<40 // 1099511627776 }; 和添加註釋看,即使我們用文本編輯器讀取的代碼每個標誌十進制值。問題是沒有任何東西可以阻止開發人員在評論中輸入錯

    2熱度

    1回答

    常量參數我明白爲什麼下面的代碼不編譯很困惑: template <typename T, typename... Ts> void TEST(T&& t, Ts&&... ts) { if constexpr(sizeof...(ts) > 0) { TEST(std::forward<Ts>(ts)...); static_assert(t == 2 , "par