juzzlin
juzzlin

Reputation: 47955

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

Consider:

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

What does the standard say about the values in the resulting tuple in this case? Is it guaranteed that e.g. the bool is always false?

Upvotes: 6

Views: 1365

Answers (1)

M.M
M.M

Reputation: 141613

The default constructor of tuple is specified to value-initialize all elements, see case 1 in cppreference link.

In brief, value-initialization is the same as if the element were initialized by {} (there are corner cases I'm omitting). For primitive types this means bool is false, double is 0.0 and int is 0 .

Upvotes: 10

Related Questions