boost-mpl

    9熱度

    1回答

    我很樂意獲得和建議如何在「二維方式」下處理boost :: variant。聽起來很奇怪,但讓我的代碼多說了(希望): 我已經編寫了一類名爲參數:如上述定義我的參數 template<typename PARAM_TYPE, typename DATA_TYPE=double> class Parameter : public quantity<PARAM_TYPE, DATA_TYPE> {

    1熱度

    2回答

    我試圖將一個模板化方法限制爲允許的類型及其「重複」風格的給定列表。 typedef boost::mpl::set<bool, int, double> allowedTypes; class Foo { typedef boost::mpl::set<bool, int, double> allowedTypes; template<class T> void

    2熱度

    1回答

    我很難理解爲什麼下面的簡單程序不能編譯。我有一個variadic模板類(下面的my_type),我想用它來轉換一個mpl向量。下面的代碼片段導致編譯錯誤「/ boost/mpl /aux_/preprocessed/gcc/apply_wrap.hpp:38:19:'apply'在'template'關鍵字之後沒有引用模板。 #include <boost/mpl/vector.hpp> #in

    1熱度

    1回答

    我有一個簡單元函數: template <typename T> using is_const_lvalue_reference = mpl::and_< std::is_lvalue_reference<T>, std::is_const<typename std::remove_reference<T>::type> >; 顯然,如果T是一個佔位符MPL因爲remo

    0熱度

    1回答

    考慮: template<typename T> struct MakeVectorOfType { typedef std::vector<T> type; }; typedef boost::mpl::vector<int, double> TScalarTypes; typedef boost::mpl::transform<TScalarTypes, MakeVect

    5熱度

    1回答

    說的子集,我有2元組沒有被實例化。有沒有一種慣用的方法來檢查一套是否是另一套的子集? 如果這需要另一種類型,而不是hana::tuple_c,這是好的,以及。其實,我目前的輸入是由std::tuple組成,但我無法以任何方式使它工作。這確實NOT工作(但我覺得應該有類似的事情可能) 代碼: #include <boost/hana.hpp> using namespace boost; us

    1熱度

    1回答

    在我的一個項目中,我過度使用boost-variant。在某個點,我超過了boost-variant的模板參數(20)的最大數量。因此,我通過將幾個boost-variant類型鏈接在一起(如鏈接列表)來推導出以下解決方案。 #include <boost/variant.hpp> #include <iostream> template<int T> struct A { con

    1熱度

    1回答

    我試圖從Abrahams和Gurtovoy的書「C++ Template Metaprogramming」中重新生成一個例子「3.1 Dimensional Analysis」。在某個時刻,他們比較了值(類型mpl::vector_c)的「維度」與變換值的「維度」相同(mpl::transform應用於兩個mpl::vector_c)。 對我來說,比較始終是false,我無法理解我出錯的地方。簡化

    2熱度

    1回答

    我想學習boost mpl,試過一個非常簡單的例子來計算一個類型出現在mpl map中的次數。可能有人解釋爲什麼這個程序的輸出爲0 typedef map< pair<int, unsigned> , pair<char, unsigned char> , pair<long_<5>, char[17]> , pair<int[42], bo

    3熱度

    1回答

    我在整個項目中都使用boost-variant。在一種情況下,我需要將包含在我的boost-variant中的類型分爲幾類。由於我的變體中有很多類型,我想到了在訪問者中定義幾個變體的想法。這些變體基本上是type-> class映射。 下面的代碼說明了我想達到的目的。 #include <iostream> #include <boost/variant.hpp> #inclu