std :: for_eachを使用して、さまざまなタイプを含む可能性のあるベクトルのコンテンツを出力しようとしています。だから私は次のような一般的な出力関数を書きました:
template<typename T> void output(const T& val)
{
cout << val << endl;
}
一緒に使用したいもの:
std::for_each(vec_out.begin(), vec_out.end(), output);
しかし、コンパイラはfor_eachステートメントで「テンプレート引数を推測できませんでした」と文句を言います。また、「関数テンプレートを別の関数テンプレートの引数にすることはできません」と文句を言います。
これは不可能ですか?コンパイラはvec_outのタイプ(ベクトル)を知っていると思っていたので、関数「output(const double&val)」をインスタンス化する必要がありますか?
これが機能しない場合、手動ループを作成せずに同様のSTL機能を取得するにはどうすればよいですか?
私はC++にまったく慣れておらず、まだロープを学んでいます:-)