diff --git a/libcxx/include/tuple b/libcxx/include/tuple index 031d25a9854f..650658729917 100644 --- a/libcxx/include/tuple +++ b/libcxx/include/tuple @@ -20,39 +20,39 @@ template class tuple { public: constexpr tuple(); - explicit tuple(const T&...); // constexpr in C++14 + explicit(see-below) tuple(const T&...); // constexpr in C++14 template - explicit tuple(U&&...); // constexpr in C++14 + explicit(see-below) tuple(U&&...); // constexpr in C++14 tuple(const tuple&) = default; tuple(tuple&&) = default; template - tuple(const tuple&); // constexpr in C++14 + explicit(see-below) tuple(const tuple&); // constexpr in C++14 template - tuple(tuple&&); // constexpr in C++14 + explicit(see-below) tuple(tuple&&); // constexpr in C++14 template - tuple(const pair&); // iff sizeof...(T) == 2 // constexpr in C++14 + explicit(see-below) tuple(const pair&); // iff sizeof...(T) == 2 // constexpr in C++14 template - tuple(pair&&); // iff sizeof...(T) == 2 // constexpr in C++14 + explicit(see-below) tuple(pair&&); // iff sizeof...(T) == 2 // constexpr in C++14 // allocator-extended constructors template tuple(allocator_arg_t, const Alloc& a); template - tuple(allocator_arg_t, const Alloc& a, const T&...); + explicit(see-below) tuple(allocator_arg_t, const Alloc& a, const T&...); template - tuple(allocator_arg_t, const Alloc& a, U&&...); + explicit(see-below) tuple(allocator_arg_t, const Alloc& a, U&&...); template tuple(allocator_arg_t, const Alloc& a, const tuple&); template tuple(allocator_arg_t, const Alloc& a, tuple&&); template - tuple(allocator_arg_t, const Alloc& a, const tuple&); + explicit(see-below) tuple(allocator_arg_t, const Alloc& a, const tuple&); template - tuple(allocator_arg_t, const Alloc& a, tuple&&); + explicit(see-below) tuple(allocator_arg_t, const Alloc& a, tuple&&); template - tuple(allocator_arg_t, const Alloc& a, const pair&); + explicit(see-below) tuple(allocator_arg_t, const Alloc& a, const pair&); template - tuple(allocator_arg_t, const Alloc& a, pair&&); + explicit(see-below) tuple(allocator_arg_t, const Alloc& a, pair&&); tuple& operator=(const tuple&); tuple& diff --git a/libcxx/include/utility b/libcxx/include/utility index 3961370dd833..a185818b6fca 100644 --- a/libcxx/include/utility +++ b/libcxx/include/utility @@ -70,10 +70,10 @@ struct pair pair(const pair&) = default; pair(pair&&) = default; constexpr pair(); - pair(const T1& x, const T2& y); // constexpr in C++14 - template pair(U&& x, V&& y); // constexpr in C++14 - template pair(const pair& p); // constexpr in C++14 - template pair(pair&& p); // constexpr in C++14 + explicit(see-below) pair(const T1& x, const T2& y); // constexpr in C++14 + template explicit(see-below) pair(U&& x, V&& y); // constexpr in C++14 + template explicit(see-below) pair(const pair& p); // constexpr in C++14 + template explicit(see-below) pair(pair&& p); // constexpr in C++14 template pair(piecewise_construct_t, tuple first_args, tuple second_args);