【发布时间】:2016-09-11 04:36:04
【问题描述】:
我是可变参数模板的新手,为了学习考虑以下函数
template <typename T, typename... args>
T* make_arr(args... arg) {
// Code to check if passed args are of the same type
T* arr = new T[sizeof...(arg)]{ arg... };
return arr;
}
我有两个问题:
- 我希望函数被模板化,并且我希望传递的参数是相同的类型,所以问题是:是否可以检查传递的参数是否是相同的类型?
- 是否可以通过推断
args...的类型来推断数组指针的类型,我的意思是不使用<typename T>? ...我使用了 decltype(arg) 但它没有用...
注意:如果不合适,请编辑标题问题...谢谢
【问题讨论】:
-
不确定,但您是否尝试过
typeid函数。 -
您希望
args具有彼此 相同的类型,并且可能与T不同?或者您希望它们都与T的类型相同?或者您允许它们彼此不同,但只要求可以使用可以转换为T的类型构建您的T数组?