2

私はtemplates についてのいくつかのページを読んでいます。

templates は次のように使用されていることがわかります。

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 つのパラメーターを追加するだけです。

では、なぜテンプレートがこのように使用されるのでしょうか。

4

1 に答える 1