1
在我繼續討論之前 - 是否已經有一個類型列表實現或者在boost或使用它的小實現中?到目前爲止我還沒有發現任何有用的東西帶有增強功能的類型列表
我試圖用升壓頁生成各種大小的列表類:
#define BOOST_PP_LOCAL_MACRO(n) \
template< BOOST_PP_ENUM_TRAILING_PARAMS(n, class t) > /*error C2913: explicit specialization; 'typelist1' is not a specialization of a class template*/ \
struct typelist##n \
{ \
typedef t##n e##n; /*I want n of these*/ \
};
#define Type_At(list, element) list::e##element
#define BOOST_PP_LOCAL_LIMITS (1, 5)
#include BOOST_PP_LOCAL_ITERATE()
查看評論中的問題的代碼。這是一個體面的方式去做一個類型列表嗎?看來......髒。我只是聽說過一個類型列表的概念,所以我不熟悉不同的風格。
解決方法:
#define BOOST_MPL_LIMIT_VECTOR_SIZE 50
#include <boost/mpl/vector.hpp>
#include <boost/mpl/at.hpp>
typedef boost::mpl::vector<int, float, double, long, short> vecType;
boost::mpl::at_c<vecType, 3>::type hi = 3;
我使用VS2010,所以沒有可變模板:( – David 2012-04-18 11:50:16