Templated şablonu sınıfındaki fonksiyonun
template <typename T>
class Foo {
public:
template <int x>
void bar() {}
};
aşağıdaki derlemesinin ile:
void fooBar()
{
Foo<int> f;
f.bar<1>();
}
ancak aşağıdaki does not ile ("hata: beklenen önce birincil ifade ')' belirteç" gcc 5.4 .0 ile -std = C++ 14). İkinci sürümü açıkça çağırmaya çalışırsam, örn.
fooBar<int>();
sonra ilave olarak ikinci versiyonu geçersiz bir sebep yaklaşık
"invalid operands of types '<unresolved overloaded function type>' and 'int' to binary 'operator<'".
var mı şikayet GCC? Gcc neden bir şablon parametre listesinin başlangıcından ziyade '<' operatör olarak davranıyor? şablonu fonksiyonu ile
olduğunu bunu anlatarak derleyici yardımcı olabilir; '? Nerede var? – alhadhrami
@alhadhrami Üzgünüm - fooBar okumuş olmalı. Düzenlemede düzeltildi. – Matt