LIST_OFこれは、コンパイルされます。ブーストを使用する::割り当てる::
std::vector<int> value = boost::assign::list_of(1)(2);
ではなく、これを:
Constructor(std::vector<int> value)
{
}
Constructor (boost::assign::list_of(1)(2));
は、コンストラクタに渡されたベクトルを初期化するためのワンライナーの解決策はありますか?
まだ良い、代わりに参照を取ることによって、クラス変数へのコンストラクタコピーの場合:私は次のことをしようとした場合
Constructor(std::vector<int>& value)
{
_value = value;
}
UPDATE
:
enum Foo
{
FOO_ONE, FOO_TWO
};
class Constructor
{
public:
Constructor(const std::vector<Foo>& value){}
};
Constructor c(std::vector<Foo>(boost::assign::list_of(FOO_ONE)));
私が手コンパイラエラー:
error C2440: '<function-style-cast>' : cannot convert from 'boost::assign_detail::generic_list<T>' to 'std::vector<_Ty>'
1> with
1> [
1> T=Foo
1> ]
1> and
1> [
1> _Ty=Foo
1> ]
1> No constructor could take the source type, or constructor overload resolution was ambiguous
コンパイラのエラーメッセージを表示できますか? –
@Kevin MOLCARDコンパイラエラー – Baz
を追加しました[これはバグです](https://svn.boost.org/trac/boost/ticket/7364)。 –