2017-12-20 9 views
-2

カスタムでconst参照によってベクトルを渡すと、C++

class Foo {} 

は、このような方法へのconst参照することにより型はFooのベクトルを渡すための正しい方法です、あなたはカスタム型を持っていると言うを入力

void f(const std::vector<const Foo&>& bar); 

または私が行う必要があり、

void f(const std::vector<Foo>& bar); 

私が使用することを好むべき1上より興味があります。

+0

あなたはそれを試すことができます。 (by * call * 'f'どこか他の人) –

+2

_"縫い目を合わせてコンパイルしてください。 "_私を見せてください。私は何らかのコードが、関数のシグネチャで 'ベクトル'と 'ベクトル'を交換し、同じコールサイトでもコンパイルできるとは思っていません...コンテナには含めることができないので、参照。 –

答えて

1

タイプとしてconst std::vector<Foo>&を渡す必要があります。これにより、関数の呼び出し時にベクターの値コピーが取得されないようにします。

std::vector<Foo&>は現在の標準では許可されていません。std::vectorには参照型を含めることはできません。

関連する問題