我試圖建立矩陣/矢量模板類C++宏,擴大n爲進1,2,3,...,N
我想擴展宏成類似以下
#define ELEMENTS(M, N) expands into
m00, m01, m02, ... , m0N,
m10, m11, m12, ... , m1N,
...
...
...
mm0, mN1, mN2, ... , mMN
這可能嗎?
我試圖建立矩陣/矢量模板類C++宏,擴大n爲進1,2,3,...,N
我想擴展宏成類似以下
#define ELEMENTS(M, N) expands into
m00, m01, m02, ... , m0N,
m10, m11, m12, ... , m1N,
...
...
...
mm0, mN1, mN2, ... , mMN
這可能嗎?
你想要的是BOOST_PP_ENUM_PARAMS。
BOOST_PP_ENUM_PARAMS
本身只是一個圍繞BOOST_PP_REPEAT
的包裝。查看implementation顯示它很麻煩,也取決於一些棘手的標題,如auto_rec.hpp
。實施這樣的事情可能會更麻煩,然後按照您的想法進行手動操作。所以,如果你不想使用Boost,我寧願不這樣做。
使用數組更簡單,效率更高。 – AraK 2012-02-22 14:42:23
@AraK如果我正確理解他,他想把它擴展到一個模板參數列表。或者我錯了? – pmr 2012-02-22 14:43:10
@AraK它也很難使用=)我想結合{結構{T ELEMENTS(M,N); v [N * M];} – aCuria 2012-02-22 14:55:17