別スレッドを立ち上げております。
うしおさん、a5uaさんから頂いたサンプルを動かしてみて
要件を満たしたと思ったのですが、微妙に問題が解決できて
おりませんでした。
私の環境はgcc-4.6.0ですが、a5uaさんのご指摘のとおり、
static_castをしないとエラーになってしまいます。
そこで、a5uaさんのstatic_castの例をベースにうしおさん
におしえていただいた、2次元vectorの初期化方法をあわせて
実装いたしました。
#include <vector>
#include <iostream>
#include <boost/assign.hpp>
template <typename T>
void print_vector(const std::vector<std::vector<T> > &v)
{
std::cout << "[" << v.size() << "]" << std::endl;
for (int i = 0, N = v.size(); i < N; ++i) {
std::cout << v[i][0] << std::endl;
}
}
class test
{
public:
test() : v(static_cast<const std::vector<std::vector<int> > &>
(boost::assign::list_of(boost::assign::list_of(1)(2)(3))
(boost::assign::list_of(1)(2)(3))) )
{
print_vector(v);
}
private:
const std::vector<std::vector<int> > v;
};
int main()
{
test();
}
が出てコンパイルができません。
test2.cpp:19:61: instantiated from here
/usr/lib/gcc/i686-redhat-linux/4.6.0/../../../../include/c++/4.6.0/bits/stl_construct.h:84:7: エラー: オーバーロードされた ‘vector(const boost::assign_detail::generic_list<int>&)’ の呼び出しは曖昧です
凡みすでしたら済みませんが、
ご指導いただければ幸です。