以下代码在Xcode中生成编译错误:
template <typename T>
struct Foo
{
Foo(T Value)
{
}
};
int main()
{
Foo MyFoo(123);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
error: missing template arguments before 'MyFoo'
更改Foo MyFoo(123);以Foo<int> MyFoo(123);修复问题,但编译器是否应该能够找出相应的数据类型?
这是一个编译器错误,还是我误解了隐式模板参数?
我有一个功能模板:
template<typename T>
void fun(T a, T b){
.......
}
int a = 0;
double b = 1.2;
f(a, b);
Run Code Online (Sandbox Code Playgroud)
可以自动转换为双倍?