テンプレートクラスでは、条件付きでテンプレートにプロパティエイリアスを定義する方法はありますか?テンプレートクラスの条件付き参照宣言
例:
template<class Type, unsigned int Dimensions>
class SpaceVector
{
public:
std::array<Type, Dimensions> value;
Type &x = value[0]; // only if Dimensions >0
Type &y = value[1]; // only if Dimensions >1
Type &z = value[2]; // only if Dimensions >2
};
はこの条件宣言は可能ですか?はいの場合、どうですか?
「Dimensions」が有効であることを保証するために、プライマリテンプレートに 'static_assert'も必要です。 – TartanLlama
しかし、なぜスペシャライゼーションはお互いから派生していないのですか? –
@songyuanyao:それを変更しましたが、私はMSVC2013でコンパイルした(おそらくは間違っていました)。 – Bathsheba