boost-mpl

    0熱度

    1回答

    我試圖編寫一個類似於boost :: mpl :: find_if的元函數,但區別在於它將遍歷從結尾開始的序列。我得到的編譯錯誤,我認爲來自計算的mpl :: lambda作爲我的元函數的參數傳遞。我會非常感謝任何關於我做錯事的指針。 現在我想一個懶惰的解決方案(裝飾原find_if): #include <boost/mpl/reverse.hpp> #include <boost/mpl/f

    4熱度

    4回答

    我想獲取類型名稱並打印出來用於調試目的。我使用下面的代碼: #include <cxxabi.h> inline const char* demangle(const char *s) { abi::__cxa_demangle(s, 0, 0, NULL); } template<typename T> inline const char* type_name() {

    0熱度

    1回答

    的第一M個元素我有一個與boost::mpl::vector元素N,說: typedef boost::mpl::vector<int,float,double,short,char> my_vector; 我希望獲得含my_vector第一M元件的序列。所以,如果M是2我想出來一個: typedef boost::mpl::vector<int,float> my_mvector; 起初

    1熱度

    1回答

    我一直在尋找一個MPL類,它將從一個性能足夠好的MPL元函數類中創建一個函數對象。我手卷此實現: template <class Lambda, class Result> struct functor { typedef Result result_type; template <typename Type> Result operato

    1熱度

    1回答

    我是新來的Boost.MPL庫,並有一定的「初學者-問題」 看看這個例子: template < typename F > struct A { typedef boost::function_types::parameter_types<F> P; typedef typename boost::function_types::result_type<F>::type R;

    5熱度

    1回答

    我有了一個模板參數T有使用案例,其中T類提供了一個功能func1的(A類A(成員)函數),而且用例,其中T沒有按不提供它。 A中的函數f()應該調用func1(),如果它存在。我認爲這應該可以用boost mpl,但我不知道如何。 這裏是一些僞代碼: template<class T> class A { void f(T param) { if(T::func

    2熱度

    1回答

    我正在學習Boost.MPL,我剛剛開始。所以如果解決方案是明顯的,請原諒我。我看這樣的例子: #include <boost/mpl/vector.hpp> #include <boost/mpl/for_each.hpp> #include <iostream> using namespace std; struct A { template <class T>

    5熱度

    1回答

    我有一個關於輕量級選項的問題,下面給出的定義,基於http://www.boost.org/doc/libs/1_40_0/libs/flyweight/test/test_basic.cpp typedef boost::flyweights::flyweight< std::string, boost::flyweights::tag<int>, boost::f

    2熱度

    1回答

    此代碼與Visual C++ 11 Developer Preview編譯良好,但不會使用gcc 4.6.1進行編譯。 如何使後者「可編譯」? #ifndef PROMOTE_H_INCLUDED #define PROMOTE_H_INCLUDED #include <boost\mpl\vector.hpp> #include <boost\mpl\find.hpp> #include

    1熱度

    2回答

    我使用以下結構來創建一個mpl類型的向量。 struct Struct1{ typedef int type; }; struct Struct2{ typedef float type; }; template<typename T> struct TypeReader{ typedef typename T::type type; }; int ma