1つの型パラメンターと1つのブール値を持つテンプレートクラスを作成しています。コードは次のとおりです。
template<class T, bool p = true>
class A
{
private:
T* ptr;
public:
A();
};
template<class T>
A<T,true>::A()
{
ptr = 0xbaadf00d;
}
int main()
{
A<int> obj;
A<int, false> o;
return(0);
}
そして、私はこれらのコンパイルエラーを受け取ります:
Error 1 error C3860: template argument list following class template name must list parameters in the order used in template parameter list tst.cpp 15
Error 2 error C2976: 'A<T,p>' : too few template arguments tst.cpp 15
私は何が間違っているのですか?それとも、何らかの理由で非型パラメータを部分的に特殊化することは禁じられていますか?
同時に、ifステートメントでbooleanパラメーターを使用すると、次の警告が表示されます。
Warning 1 warning C4127: conditional expression is constant
だから私はこの種のことに特化することになっています...
どんな助けでも大歓迎です!:)
前もって感謝します!!!!