template<bool b = 2> void foo(void) {}
template void foo();
template<unsigned char n = 258> void bar(void) {}
template void bar();
GCCはfoo < true>とbar < 2>をインスタンス化します。 Clangは "error:non-typeのテンプレート引数が2に評価されますが、これはbool '[-WC++ 11-narrowing]"と入力すると縮小できません。範囲外のテンプレートパラメータで予想される動作?
上記のコードは有効ですか?このうちの1つにバグですか?使用
バージョン:クラン3.8.0-2ubuntu4、GCC 5.4.0 20160609(〜16.04.2 Ubuntuの5.4.0-6ubuntu1)