我有一個boost :: MPL順序是這樣的:升壓MPL - 聲明一個類的序列中的每個類型
typedef boost::mpl::vector<
char, unsigned char, short, unsigned short, int, unsigned int, float, double
> TTypes;
我有我想從我的DLL導出一個特定用途的容器類:
template<typename T>
class Container { T* _elements; }
現在我需要在我的頭(MSVC編譯器)是幾行這樣的:
template class __declspec(dllexport) Container<char>;
template class __declspec(dllexport) Container<short>;
等(我需要的同樣,但爲了包括這個庫的客戶端的dllimport)。
現在我的問題是,有沒有辦法從我的mpl向量生成這些行?
我懷疑這是不可能的,所以我的回退:有沒有辦法讓預處理器爲我做這個?那麼,是否有任何(boost)宏會以某種方式遍歷序列中的元素(如果我必須使用一些特殊的語法來定義序列,這很好),以便我可以在預處理器字符串中使用類型名稱做些事情?
想不到一個辦法。看起來像一個不幸的提升預處理器宏的工作。 –