【发布时间】:2019-12-29 21:55:01
【问题描述】:
考虑:
std::tuple<bool, double, int> getTuple()
{
return {};
}
在这种情况下,标准对结果元组中的值有何规定?是否保证例如bool 总是假的?
【问题讨论】:
-
我猜是的,因为this,但这是假设元组使用像这样的默认构造函数。
考虑:
std::tuple<bool, double, int> getTuple()
{
return {};
}
在这种情况下,标准对结果元组中的值有何规定?是否保证例如bool 总是假的?
【问题讨论】:
tuple 的默认构造函数被指定为对所有元素进行值初始化,参见cppreference link 中的案例 1。
简而言之,值初始化与元素由{} 初始化是相同的(我省略了一些极端情况)。对于原始类型,这意味着 bool 是 false,double 是 0.0 和 int 是 0。
【讨论】: