C++14:返回 {} 时元组中的默认值
C++14: Default values in tuple when returning {}
考虑:
std::tuple<bool, double, int> getTuple()
{
return {};
}
在这种情况下,标准对结果元组中的值有何规定?是否保证例如布尔总是假的?
tuple
的默认构造函数指定对所有元素进行值初始化,参见cppreference link中的情况1。
简而言之,值初始化与元素由 {}
初始化相同(我省略了一些特殊情况)。对于基本类型,这意味着 bool
是 false
,double
是 0.0
,int
是 0
。
考虑:
std::tuple<bool, double, int> getTuple()
{
return {};
}
在这种情况下,标准对结果元组中的值有何规定?是否保证例如布尔总是假的?
tuple
的默认构造函数指定对所有元素进行值初始化,参见cppreference link中的情况1。
简而言之,值初始化与元素由 {}
初始化相同(我省略了一些特殊情况)。对于基本类型,这意味着 bool
是 false
,double
是 0.0
,int
是 0
。