私はtemplate
s についてのいくつかのページを読んでいます。
template
s は次のように使用されていることがわかります。
template <typename T>
T func(T a) {...}
したがって、異なるタイプの変数に同じコードを使用する柔軟性を提供するためです。また、クラスにのみ適用されるように見える特殊化を使用できます。次のようになります。
template <> class A<int> {....}
しかし、私はこのような用途を見つけられませんでした:
template<int N, bool isVertical, bool isFirst, bool isLast>
static void filter(int bitDepth, Pel const *src, int srcStride,
short *dst, int dstStride, int width,
int height, short const *coeff);
次のように呼び出されます。
filter<N, false, true, true>(bitDepth, src, srcStride, dst, dstStride, width, height, coeff);
このコードでは、テンプレートに実数型と絶対型が与えられています。私見ですが、テンプレートを使用する代わりに、フィルターのパラメーター リストに別の 4 つのパラメーターを追加するだけです。
では、なぜテンプレートがこのように使用されるのでしょうか。