boost-mpl

    0熱度

    1回答

    添加我使用boost :: mpl :: *並嘗試擴展物理單元示例的時刻。目前我有以下代碼: template < int Mass, int Length, int Time, int Temperature, int Angle, int Current > struct base_dimension { typedef typename mpl::vector

    2熱度

    1回答

    通常,嵌套結構可以訪問擁有類public,protected和public成員函數。還有調用基類的protected成員函數從嵌套結構中,即下面的代碼編譯和工作正常沒有問題: #include <iostream> class Base { public: Base() {} protected: void baseProtectedFunc()

    4熱度

    2回答

    我有以下代碼: #include <boost/mpl/list_c.hpp> #include <boost/mpl/transform.hpp> #include <boost/mpl/plus.hpp> #include <boost/mpl/equal.hpp> #include <boost/mpl/equal_to.hpp> #include <boost/mpl/asser

    2熱度

    3回答

    我有以下結構代碼: template <typename T> struct Foo { struct Bar { int data; }; }; 我想寫元函數它會告訴我,如果一個類型是富或酒吧。第一個是簡單的: ​​ 然而,同樣的方法不適用於酒吧工作: template <typename T> struct is_bar : boost::m

    0熱度

    1回答

    我有三個類遵循相同的概念類,但在用於存儲的底層數據結構上有所不同。作爲一個例子,下面給出了三個類。 template< typename T > class A{ std::vector<T> storage; //etc }; template<> class A<bool>{ boost::dynamic_bitset<> storage; /

    3熱度

    2回答

    我有一些理解MPL佔位符的麻煩。 有人請解釋我爲什麼這段代碼無法編譯? 我期望打印數字0,1 & 2,但當編譯器試圖確定Wrapper的默認模板參數的類型時,似乎佔位符不會被實際類型替換。 #include <iostream> #include <boost/mpl/inherit.hpp> #include <boost/mpl/inherit_linearly.hpp> #includ

    1熱度

    1回答

    我在寫一些讀取XML字符串的C++,並使用XML文件中與屬性鍵匹配的值填充某些結構成員。目前,此處的第一次傳遞使得關鍵值對的stl :: unordered_map成爲可能。下一步是解釋值字符串並將它們作爲目標類型返回以存儲在結構中。有些類型有點複雜,但我有可以轉換它們的方法。 我想要做的是使用mpl :: vector將鍵映射到使用get_value_ *方法轉換值的結構成員。我認爲它看起來有點

    2熱度

    1回答

    我想生成映射索引類型的一些通用配置處理代碼,使用fusion::map與內部格式如下: fusion::pair< mpl::int_<VALUE>, type >; 爲了簡化代地圖我有以下代碼: #include <boost/fusion/sequence.hpp> #include <boost/fusion/container.hpp> #include <boost/fusion

    0熱度

    2回答

    下面的代碼試圖測試boost::mpl::or_和boost::mpl::and_短路特性: #include <vector> #include <boost/mpl/eval_if.hpp> #include <boost/mpl/identity.hpp> #include <boost/mpl/or.hpp> #include <boost/mpl/and.hpp> #inclu

    8熱度

    1回答

    我在寫一些消息處理代碼,每個消息都是POD結構。在寫這個的方法是定義一個抽象基類,爲每個消息類型如虛擬functiosn: class AbstractHandler { public: virtual void handleMessage(const MessageType1& msg) =0; virtual void handleMessage(const Messa