template <typename T>
class Foo {
public:
template <int x>
void bar() {}
};
次コンパイル付:
void fooBar()
{
Foo<int> f;
f.bar<1>();
}
が、次のことを行いません(と、「エラー:予想される前に、一次式 『)』トークン」GCC 5.4で.0と-std = C++ 14)。
template <typename T>
void fooBar()
{
Foo<T> f;
f.bar<1>();
}
たとえば、2番目のバージョンを明示的に呼び出すとします。
fooBar<int>();
その後、さらに第二のバージョンが無効である理由何らかの理由がある程度
"invalid operands of types '<unresolved overloaded function type>' and 'int' to binary 'operator<'".
を文句gccの? gccがテンプレートパラメータリストの先頭ではなく演算子として '<'を扱うのはなぜですか?
テンプレートであることを伝えることで、コンパイラを助けることができますか;'?それはどこに存在しますか? – alhadhrami
@alhadhrami申し訳ありません - fooBarを読んでください。編集時に訂正されました。 – Matt