Boost.Fusionの要素追加
BoostML - 【fusion】 "real" return types
メモ。
#include <string> #include <boost/fusion/container/vector.hpp> #include <boost/fusion/algorithm/transformation/push_back.hpp> namespace fusion = boost::fusion; template <class Vector, class T> typename fusion::result_of::as_vector< typename fusion::result_of::push_back<Vector, T>::type >::type push(Vector vec, T value) { return fusion::push_back(vec, value); } int main() { fusion::vector<int, std::string> t(3, "abc"); fusion::vector<int, std::string, double> result = push(t, 3.14); // result:(3, "abc", 3.14) }
【参考】
boost::fusion::result_of::push_back