template< class T >
class Foo {
public:
Foo( T t ) { }
};
int main () {
int i = 0;
Foo f( i );
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,编译器抱怨在'f'之前缺少模板参数.我理解从构造函数的参数中推导出类的模板参数不是标准的一部分,但我的问题是为什么?编译器是否具有隐式实例化Foo<int>和调用其构造函数所需的所有信息?
编辑要清楚的是我打电话与构造int(而不是一个short,long,void*,等)
我正在尝试设置几张地图以快速完成合并冲突.这是我的代码:
func! DiffAccept(w)
diffget a:w
diffupdate
normal ]c
endfunc
noremap dh :exec DiffAccept("//2")<CR>
noremap dl :exec DiffAccept("//3")<CR>
Run Code Online (Sandbox Code Playgroud)
每次我尝试使用它时,我得到"没有匹配的缓冲区:a:w".我显然使用这个变量是错误的,但是当我将行更改为"echo a:w"时,它会按预期运行.