使用boost :: MPL,我可以像如下創建一個三個元素向量的一個typedef:升壓:: MPL的for_each與正常「C」陣列
typedef boost::mpl::vector_c<int,1,2,3> height_t;
我可以拉動值超出這個的typedef與下面的這段:
std::vector<int> height;
boost::mpl::for_each<height_t>(boost::bind(&std::vector<int>::push_back, &height, _1));
assert(height[0] == 1);
assert(height[1] == 2);
assert(height[2] == 3);
我不知道是否有一種方法做同樣的事情,但與正常的「C」 array而不是std::vector
。不幸的是,我不能在這個項目中使用STL容器。
uint32_t height[3];
boost::mpl::for_each<height_t>(????, &height, _1));
我懷疑我需要更換????與另一個綁定條款。有任何想法嗎?
這不應該被標記'C'。 C和C++是不同的語言。 – 2010-01-01 05:03:24
你可以將它重新標記爲Alok。 – 2010-01-01 12:48:18