C++14:返回 {} 时元组中的默认值

C++14: Default values in tuple when returning {}

考虑:

std::tuple<bool, double, int> getTuple()
{
    return {};
}

在这种情况下,标准对结果元组中的值有何规定?是否保证例如布尔总是假的?

tuple的默认构造函数指定对所有元素进行值初始化,参见cppreference link中的情况1。

简而言之,值初始化与元素由 {} 初始化相同(我省略了一些特殊情况)。对于基本类型,这意味着 boolfalsedouble0.0int0