言ってやる例えば、私は2次元配列から値を返す関数を持っている:テンプレートを使用しない汎用プログラミングを使用できますか?
float get_2d_noise(const point& p)
{
return map2D[p.x][p.y];
}
point
が、私は私のライブラリの一部として定義したクラスです。
struct point
{
int x;
int y;
}
これを除いて:
template<typename T>
float get_2d_noise(const T& p)
{
return noisemap[p.x][p.y];
}
同じ効果を得ることはできますか?つまり、xとyのメンバーを持つものが動作するような方法でget_2d_noise
を作成しますか? (好ましくは実行時ではなくコンパイル時にエラーが発生する)。
あなたはテンプレートで行うことができないことをやりたいんでしょうか? – user463035818
btw 'T'のxとyのメンバーを' int'に変換することができる場合にのみ関数が機能します – user463035818
理論計算機科学ははいを示唆しています。 CとC++の両方がTuring Complete言語です。つまり、他の言語と同じように強力です。 C++にはテンプレートがあり、Cにはありません。したがって、Cはジェネリックプログラミングのサンのテンプレートをサポートできると結論づけることができます。 – erip