BoostML - 【Assign】 Error using list_of() with Visual C++ 2010 Beta 1
GCC 4.4やVC10 Beta1のような右辺値参照に対応したコンパイラでは
boost::assign::list_ofが動かない場合があります。
以下のコードは通りますが
#include <list> #include <boost/assign/list_of.hpp> using boost::assign::list_of; int main() { const std::list<int> primes = list_of(2)(3)(5)(7)(11); }
以下のようにするとコンパイルエラーになります。
#include <list> #include <boost/assign/list_of.hpp> using boost::assign::list_of; int main() { const std::list<int> primes(list_of(2)(3)(5)(7)(11)); // エラー! }
list_ofの戻り値の型からコンテナへの変換より先に
listのムーブコンストラクタが呼ばれてしまってるようですね。
んー、なんでだろう。