私はコンテナオブジェクトを持っています:
R Container;
R は型list<T*>
またはvector<T*>
次の関数を記述しようとしています。
template<typename T, typename R>
T& tContainer_t<T, R>::Find( T const item ) const
{
typename R::const_iterator it = std::find_if(Container.begin(), Container.end(), [item](const R&v) { return item == v; });
if (it != Container.end())
return (**it);
else
throw Exception("Item not found in container");
}
メソッドを試すとき(vは私のクラスのオブジェクトです)
double f = 1.1;
v.Find(f);
私は得るbinary '==' : no operator found which takes a left-hand operand of type 'const double' (or there is no acceptable conversion)
ラムダ式の構文とそこに何を書くべきかについて混乱しており、分かりやすい説明が見つかりませんでした。
なにが問題ですか ?10倍。