【发布时间】:2015-02-25 12:08:18
【问题描述】:
我可以默认将参数包初始化为每种类型的相应值初始化吗?
再详细一点,以一个简单的函数模板为例
template<typename T>
void f(T arg = T())
{
// eg for T=int, arg is 0 (value initialization) when default initialized
}
是否有可能表达它的可变参数对应物,即
template<typename... Args>
void F(Args... args /* how can I value initialize the parameter pack? */)
{
}
【问题讨论】:
-
是
F<int, char, float, double>(1, 'c');你想要达到什么目的? -
@PiotrS。是的,甚至是
F<int, char, float, double>()。我想我可以解压缩一个默认的初始化元组,而忘记函数默认参数(即使这不包括你提到的情况) -
对不起,我的意思是 value 已初始化。请参阅 Potatoswatter 为任何需要消歧的人提供的答案
标签: c++ c++11 templates variadic-templates