私は現在、テンプレート引数に応じて特殊化する必要があるクラスを作成しています。
数値テンプレート引数が X より大きいかどうかに応じて、特定の特殊化のために特定のメンバー変数を除外して、より正確にすることができるかどうか疑問に思っています。
たとえば、次のようになります。
template<int N>
class Test
{
int a;
int b;
}
template<N > X>
class Test
{
int a;
}
std::conditional の使用を考えていましたが、少なくとも 1 つの型が選択されるようです。もちろん、D-Pointer メソッドと std::conditional を使用して、指定されたさまざまなオブジェクトに特化することもできますが、もっと良い方法があるかどうか疑問に思いました。
私が見る別の方法は、抽象基本クラスを使用し、N < X 用と N >= X 用の 2 つの実装を持つことですが、これがより良いかどうかはわかりません。