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