有没有办法让编译自动推导出模板参数?
templatestruct TestA { TestA(T v) {} }; template void TestB(T v) { } int main() { TestB (5); }
测试B工作正常,但是当我将其更改为TestA时,它将无法编译错误"使用类模板需要模板参数列表"
不,没有.永远不会推断出类模板.通常的模式是具有make_
自由功能:
templateTestA make_TestA(T v) { return TestA (v); }
例如,见std::pair
和std::make_pair
.
在C++ 0x中,您将能够做到
auto someVariable = make_TestA(5);
避免必须指定局部变量的类型.