如何在可以接受每種類型的函數模板中返回變量的值?使用函數模板返回類型爲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