#include <iostream>
using namespace std;
template<const int arr[]>
struct S {
static constexpr int value = arr[0];
};
constexpr int arr[] = { 5 };
int main() {
cout << S<arr>::value << endl;
}
としてconstexprのアレイを使用してこのプログラムは、GCC 5.1以降で5
微細かつプリントをコンパイルするが、MSVC 19.10.25019は、次のエラーを与える:テンプレート非型引数(C++ 14)
エラーC2975:「S」:「ARR」の無効なテンプレート引数は、 コンパイル時の定数式エラーC2131を期待:式が が一定
に評価されなかったによると、このプログラム有効ですC++ 14標準、またはgccはここであまりにも寛容ですか?
についてレコードでは、Clangもこのコードを受け入れます。 – jwimberley
'arr []'を 'arr [1]'に置き換えた場合、MSVCは何を言いますか? – jwimberley
@jwimberley何も変わりません。 –