Aşağıdaki kod Xcode bir derleme hatası oluşturur:Örtülü Şablon parametreler
template <typename T>
struct Foo
{
Foo(T Value)
{
}
};
int main()
{
Foo MyFoo(123);
return 0;
}
error: missing template arguments before 'MyFoo'
Foo MyFoo(123);
Foo<int> MyFoo(123);
düzeltmeleri sorunu değiştirilmesi değil, derleyici uygun anlamaya gerekir veri tipi?
Bu bir derleyici hatası mıdır, yoksa örtülü şablon parametrelerini yanlış anlıyor muyum?
Foo MyFoo(123);
MyFoo
geçici alanı ayrılıyor mı ve bilmesi bakımından
MyFoo
tam nitelikli tipini bilmelisiniz:
, bu boşluk anlaması başladı. –
Arayanın türünü yapıcıya çağırır, ancak depolama alanı için değil. Bir değişkeni basitçe 'Foo' olarak tanımlarsanız, her ikisi de Foo 've' Foo 'tutabilir mi? Ya da her zaman kalbinin kalbinde gizlice bir 'Foo ' olduğunu biliyor mu? Eğer değişken “const” ise, bu değer uygulanabilir, çünkü bu değer yeniden atanamazdı, ancak daha sonra “T” ve “T” için farklı sözcük kurallarına sahip olurduk ve büyük bir tahribat gerçekleşecekti. –