如何在可以接受每种类型的函数模板中返回变量的值?使用函数模板返回类型为X的变量的值
例如,假设我有以下功能:
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
类型的变量的值。
在此先感谢。
我也认为@ Ron的解决方案波纹管是你所需要的。如果不是,那么你的问题就严重不足。 – StoryTeller
@StoryTeller未指定? – GTAVLover
意思是你没有解释你想要什么。 “我希望''X'为'foo(X)'”成为一个明显的解决方案。 – StoryTeller