Следующий код генерирует ошибку компиляции в Xcode:
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);
устраняет проблему, но не должен ли компилятор определить соответствующий тип данных?
Является ли это ошибкой компилятора, или я не понимаю неявные параметры шаблона?