如何在函数模板中返回变量的值,该模板可以接受每种类型?
例如,假设我有以下功能:
template<typename T>
size_t func(T const&) {
return sizeof(T);
}
它可以接受任何类型,例如int
,unsigned int
,BSTR
和long
,并返回类型的大小。
但我喜欢得到任何类型的变量值,如:
template<typename T, valueof typename>
X func(T const&) {
// << return valueof(T) OR return typeid(T).value OR WHATELSE??? >>
}
例如,当我像Hello World!
一样使用它时,我需要在上面返回func<BSTR>("Hello World!")
。当我像123456
一样使用它时,我需要在上面返回func<int>(123456)
。
我已经知道如何使用typeid(T).name()
获取变量类型的名称,但不知道如何获取具有T
类型的变量的值。
提前致谢。
答案 0 :(得分:2)
只需返回参数值:
template <typename T>
T func(const T& param) {
return param;
}