boost-mpl

    0熱度

    2回答

    我想知道如何使用可變參數模板來編寫類似Boost MPL的vector_c。我已經寫了下面的代碼片段: template <std::size_t element, std::size_t ... E> struct vector { typedef vector<E ...> next; static constexpr std::size_t size()

    0熱度

    1回答

    我想通過使用boost :: mpl :: fold來處理一些模板參數。目前,我仍然堅持Boost提供的樣本,即使這對我不起作用。我得到以下錯誤: ..\src\main.cpp:18:32: error: template argument 2 is invalid ..\src\main.cpp:18:37: error: wrong number of template arguments

    7熱度

    3回答

    我有我想要的類型串上的所有類型的執行功能(目前由MPL列表代表---這是甚至接近它一個合理的方式?) 這裏的關鍵是函數只關心類型,而不關心實際數據;它調用該類型的靜態函數來檢索一些信息,然後將其推入散列表中供以後參考。 但是,據我所知,mpl沒有這樣做---最接近我能找到的是mpl for_each運算符,但它似乎想要用於每個實際的實例的類型,而不是類型本身。 Loki庫有一個「應用」函數,它或多

    1熱度

    2回答

    考慮在std::any_of #include <iostream> // cout #include <type_traits> // is_base_of, is_pod #include <boost/mpl/apply.hpp> // apply #include <boost/mpl/fold.hpp> // fold #

    4熱度

    1回答

    考慮下面的代碼來自動生成Boost.MPL類型序列(列表或向量)。 #include <iostream> // cout #include <boost/mpl/for_each.hpp> // for_each #include <boost/mpl/identity.hpp> // identity, make_identity #include

    0熱度

    1回答

    我想實現一個像std :: pair但有兩個以上組件的類。由於在我的應用程序中可能會發生某些元組件在編譯時已經知道,我想要進行以下空間優化:當我知道某個組件是編譯時常量時,只需將其聲明爲「靜態常量「成員,這樣它就不會浪費存儲在各個類實例中。 const限定符確保在運行時修改該值的任何嘗試都會導致編譯錯誤,至少如果我們排除不禮貌的const_cast(s)。 我結束了下面的實現,一個n元組類 tem

    4熱度

    1回答

    我想知道如何獲得一些代碼來編譯,這將決定T函數模板中T的返回值的大小,其中T是一個函數原型。 ​​ 但是它仍然不能編譯,因爲的sizeof(無效)不是一個有效的操作 - 儘管我試圖構建一個if語句,如果類型爲void將返回一個大小爲0。我對BOOST MPL相當陌生,所以,雖然我一直在瀏覽文檔一段時間,但我不確定如何應用if_或apply_if等其他ifs,並且這些工具甚至可以工作。 謝謝。

    3熱度

    1回答

    所以想象我們有一個mpl :: vector我們想要打印(例如cout)它作爲這樣的字符串:int, string, char。如何用boost :: mpl做這樣的事情?

    2熱度

    1回答

    下面的代碼工作在Visual Studio 2005中,但是當使用g ++ 4.4.5編譯給了我一個編譯器錯誤: #include <boost/mpl/if.hpp> #include <boost/mpl/bool.hpp> template<int X> struct A { void f() { typedef boost::mpl::if_<boost::m

    1熱度

    3回答

    我想根據boost::mpl::eval_if(或類似的函數)的結果調用一個參數,它可以給出多少個模板參數不是空的。假設我們有一些僞代碼如下所示: struct EmptyType { }; template<class arg1=EmptyType, class arg2=EmptyType, class arg3=EmptyType> class my_class { eval