template-meta-programming

    2熱度

    1回答

    我想獲得給定參數包的std::make_tuple返回的類型。到現在爲止我寫了下面的代碼: #include <tuple> #include <functional> template <class T> struct unwrap_refwrapper { using type = T; }; template <class T> struct unwrap_ref

    16熱度

    4回答

    問題的有效性以下,C++14: 讓我們有兩個功能FV&& valid_f,FI&& invalid_f和參數Args&&... args 功能apply_on_validity應適用valid_f上args如果表達式std::forward<FV>(valid_f)(std::forward<Args>(args)...)有效 否則並且如果std::forward<FV>(invalid_f)(s

    3熱度

    3回答

    考慮構建類存儲函數的以下代碼。我想要這些函數被完美地轉發(不管它們是否是函數指針,函數,lambda表達式......)。但我不完全理解std::forward和普遍引用背後發生的所有類型扣除。在上面的代碼,我有三個問題: 應該_f是std::tuple<F...>型或std::tuple<F&&...>的 是否可以推斷出模板參數列表中的返回類型R(因爲這樣做(爲什麼?)手動的,而不是auto/d

    2熱度

    2回答

    讓我們假設我們有這樣的東西:一個Foo類('FooInterface')的接口和一個包含'FooInterface'派生類的容器類Bar。 現在我轉發一個派生類的類型列表('FooOne','FooTwo')到容器類,它將它們的一個實例存儲在一個'boost :: hana :: tuple'後面的小型計算('FooTuple')。 現在我怎麼用取消引用這個指針來初始化元組元素,取決於'FooLi

    2熱度

    1回答

    我在使用傳統C++時遇到了麻煩,但我很確定它可以完成。說我有一個需要兩個版本,一個是一元可調用(函數對象,函數,成員函數) template <class F> void ho_fun(F argFun) { int arg1; argFun(arg1); } 和一個二進制高階函數: template <class F> void ho_fun(F argFun) {

    2熱度

    1回答

    我正在實現一個非常複雜的基於模板的功能,並且遇到了一個我無法解決的錯誤。我已經簡化我的情況下,該代碼: template <typename Head, typename... T> struct BaseIsFirst { using Base = Head; }; template <typename T, typename D> struct IAction {

    0熱度

    1回答

    靜態字符我想要做這樣的事情: template<typename T> const char * toStr(T num) { thread_local static char rc[someval*sizeof(T)] str = "0x000...\0"; // num of zeros depends on size of T // do something with

    1熱度

    2回答

    我設法解決有關初始化靜態字符數組前一個問題,在這裏問:Initializing a static char based on template parameter 我不喜歡在我的解決方案的輔助功能的需要: //static char arr[N] = {[0]='0', [1]='x', [N-1]='\0',}; // ideally want this, but not currently

    3熱度

    3回答

    我目前正在玩模板元編程。我試圖通過使用tmp來創建一個有限狀態機。我知道網絡中有幾種實現方式,但我想自己實現一種實踐方式。 我有一個叫做Condition的類,它是兩個狀態之間轉換條件的基類。一種實現方式是AnyCondition類: template<class Input, Input comp, Input ... comps > class AnyCondition: public Co

    1熱度

    1回答

    我目前正在玩模板元編程。我試圖通過使用tmp來創建一個有限狀態機。我知道網絡中有幾種實現方式,但我想自己實現一種實踐方式。 我想重載運營商模板基類內的基類模板衍生物。假設我們有一個基類: template<typename Input> class Base { public: virtual ~Base() = default; virtual bool operat