给定模板化函数,如下所示:
template<class T> int Function(T object);
int result = Function<float>(100.f); // Valid
但是类型规范是可选的,因为编译器可以从提供的参数的类型推导出T的类型;像这样:
int result = Function(100.f); // Also valid,the compiler deduced the type "float" from the literal's type
假设我有点复杂,我想要一个这样的模板化值参数:
template<class T,T* object> int Function();
static float val = 100.f; // ... int result = Function<float,&val>();
我的问题是:有没有办法我强迫编译器根据参数& val的类型推断出类型T?
static float val = 100.f; // ... int result = Function<&val>();
可以吗?