This means that for std::tuple<T1,T2,...,Tn>
, all Ti
types must be implicitly built by default.
Implicitly constructed default tuple example
For example, since std::string
and std::vector
implicitly constructed by default (their default constructor is not explicit
), std::tuple<std::string, std::vector>
:
void f(std::tuple<std::string, std::vector<int>>); f({});
Implicitly constructed default tuple example
With the implicit constructive default type A
, std::tuple<std::string, A>
cannot be implicitly built by default:
struct A { explicit A() = default; }; void f(std::tuple<std::string, A>); f({});
source share