3

次のコード

template <class Integral>
using enable_if_integral_t = typename std::enable_if<std::is_integral<Integral>::value>::type;

template <class Integral, class Enable = void>
class DigitsNumber;

template <class Integral>
class DigitsNumber<Integral, enable_if_integral_t<Integral>>{
};

MSVC 2013 でエラーを生成します。

エラー C3203: 'enable_if_integral_t': 特殊化されていないエイリアス テンプレートは、テンプレート パラメーター 'Enable' のテンプレート引数として使用できません。実数型が必要です

しかし、gcc では問題なくコンパイルされます。

このコードは C++11 標準に準拠しており、Visual Studio のバグ/実装されていない機能ですか、それとも標準には準拠していませんが、gcc 拡張機能です。

VSでこれを機能させる方法はありますか?

ありがとうございました。

4

1 に答える 1