2011-12-26 13 views
-1

は、それが次の積分定数型を返すだけで、たとえば私は部分的に<...>をINT_するために、私のクラステンプレートを特化することができますどのように、long_ <...>

template <class C> 
struct apply<template<> struct T<C N>> 
{ 
    typedef typename T<N + 1>::type type; 
}; 

のようなものかもしれません。

あなたが直接特化することができます任意の固定タイプの場合
+1

私は唯一の人ではないと思っています。 – kukyakya

+0

int_ 、long_ などのテンプレートの特殊化が必要です。それは非常に扱いにくいようです。 – Yola

+1

SOはQ&Aサイトであり、フォーラムではありません。コメントに反応するのではなく、質問を編集して明確にする必要があります。 [サンプルコード](http://sscce.org/)は完全でありながら簡潔でなければなりません。あなたが専門化したいテンプレートの宣言を与えていないので、質問は現在理解できません。また、タイトルと本文の両方に質問が表示されます。 – outis

答えて

1

:あなたはまた、1つの整数パラメータを取るテンプレートに特化することができます

template <typename> struct apply; // primary template 

template <unsigned int N> 
struct apply<int_<N>> 
{ 
    typedef int_<N + 1> type; 
}; 

template <template <unsigned int> class TInt, unsigned int N> 
struct apply<TInt<N>> 
{ 
    typedef TInt<N + 1> type; 
}; 

は、後者は、しかし、任意のtemplate <unsigned int> classにマッチしますので注意してください。

+0

+1、ありがとうございました。このテンプレートのようにすることができます:** template class TInt、CN> ** – Yola

+0

@Yola:あなたの構文を理解する。それは何であるはずですか?テンプレート引数は、型、オブジェクト、またはテンプレートのいずれかでなければなりません。 –

+0

私はまだ整数定数クラスのすべてのジェネリッククラスを記述することができますが、それは可能な場合私にとって今はあまりにも難しいようです。ありがとう、応募してください。 – Yola

関連する問題

 関連する問題