は、私は次のテンプレート機能を持って言うように複雑な関数を渡すと、バリアント:引数
template <class T>
void apply(const vector<complex<T> >& in, vector<T>& out, T (*f)(complex<T>))
{
out.resize(in.size());
for(size_t i = 0; i < in.size(); ++i) out[i] = f(in[i]);
}
あなたは私だけ複雑なデータのベクトルに関数を適用したい、見て、ベクターに結果を格納することができます実データの私はこれが機能の全リストのために良いはずです:abs、norm、real、imag、等
私の問題は、どのように関数を渡すのですか?
apply(in, out, abs)
の変形をabs
に別のテンプレートを提供してみました。私はかなり複雑なすべてのテンプレートの機能から問題が生じると確信していますが、正しく渡す方法がわかりません。助けてくれてありがとう。
'pow'は*テンプレートと*オーバーロードされますが、常に2つの引数をとります。 –
私は 'abs'やその他の複雑な関数が' const& 'を取ることに気づいていませんでした。それは一貫して文書化されていないようです。すべての作品は今、ありがとう。 – steveo225