forked from OSchip/llvm-project
[NFC][libc++] Add missing EXPLICIT to pair and tuple synopsis
The constructors for std::pair and std::tuple have been made conditionally explicit, however the synopsis in the headers do not reflect that. llvm-svn: 366735
This commit is contained in:
parent
d8bdb9225c
commit
e35c5121da
|
@ -20,39 +20,39 @@ template <class... T>
|
||||||
class tuple {
|
class tuple {
|
||||||
public:
|
public:
|
||||||
constexpr tuple();
|
constexpr tuple();
|
||||||
explicit tuple(const T&...); // constexpr in C++14
|
explicit(see-below) tuple(const T&...); // constexpr in C++14
|
||||||
template <class... U>
|
template <class... U>
|
||||||
explicit tuple(U&&...); // constexpr in C++14
|
explicit(see-below) tuple(U&&...); // constexpr in C++14
|
||||||
tuple(const tuple&) = default;
|
tuple(const tuple&) = default;
|
||||||
tuple(tuple&&) = default;
|
tuple(tuple&&) = default;
|
||||||
template <class... U>
|
template <class... U>
|
||||||
tuple(const tuple<U...>&); // constexpr in C++14
|
explicit(see-below) tuple(const tuple<U...>&); // constexpr in C++14
|
||||||
template <class... U>
|
template <class... U>
|
||||||
tuple(tuple<U...>&&); // constexpr in C++14
|
explicit(see-below) tuple(tuple<U...>&&); // constexpr in C++14
|
||||||
template <class U1, class U2>
|
template <class U1, class U2>
|
||||||
tuple(const pair<U1, U2>&); // iff sizeof...(T) == 2 // constexpr in C++14
|
explicit(see-below) tuple(const pair<U1, U2>&); // iff sizeof...(T) == 2 // constexpr in C++14
|
||||||
template <class U1, class U2>
|
template <class U1, class U2>
|
||||||
tuple(pair<U1, U2>&&); // iff sizeof...(T) == 2 // constexpr in C++14
|
explicit(see-below) tuple(pair<U1, U2>&&); // iff sizeof...(T) == 2 // constexpr in C++14
|
||||||
|
|
||||||
// allocator-extended constructors
|
// allocator-extended constructors
|
||||||
template <class Alloc>
|
template <class Alloc>
|
||||||
tuple(allocator_arg_t, const Alloc& a);
|
tuple(allocator_arg_t, const Alloc& a);
|
||||||
template <class Alloc>
|
template <class Alloc>
|
||||||
tuple(allocator_arg_t, const Alloc& a, const T&...);
|
explicit(see-below) tuple(allocator_arg_t, const Alloc& a, const T&...);
|
||||||
template <class Alloc, class... U>
|
template <class Alloc, class... U>
|
||||||
tuple(allocator_arg_t, const Alloc& a, U&&...);
|
explicit(see-below) tuple(allocator_arg_t, const Alloc& a, U&&...);
|
||||||
template <class Alloc>
|
template <class Alloc>
|
||||||
tuple(allocator_arg_t, const Alloc& a, const tuple&);
|
tuple(allocator_arg_t, const Alloc& a, const tuple&);
|
||||||
template <class Alloc>
|
template <class Alloc>
|
||||||
tuple(allocator_arg_t, const Alloc& a, tuple&&);
|
tuple(allocator_arg_t, const Alloc& a, tuple&&);
|
||||||
template <class Alloc, class... U>
|
template <class Alloc, class... U>
|
||||||
tuple(allocator_arg_t, const Alloc& a, const tuple<U...>&);
|
explicit(see-below) tuple(allocator_arg_t, const Alloc& a, const tuple<U...>&);
|
||||||
template <class Alloc, class... U>
|
template <class Alloc, class... U>
|
||||||
tuple(allocator_arg_t, const Alloc& a, tuple<U...>&&);
|
explicit(see-below) tuple(allocator_arg_t, const Alloc& a, tuple<U...>&&);
|
||||||
template <class Alloc, class U1, class U2>
|
template <class Alloc, class U1, class U2>
|
||||||
tuple(allocator_arg_t, const Alloc& a, const pair<U1, U2>&);
|
explicit(see-below) tuple(allocator_arg_t, const Alloc& a, const pair<U1, U2>&);
|
||||||
template <class Alloc, class U1, class U2>
|
template <class Alloc, class U1, class U2>
|
||||||
tuple(allocator_arg_t, const Alloc& a, pair<U1, U2>&&);
|
explicit(see-below) tuple(allocator_arg_t, const Alloc& a, pair<U1, U2>&&);
|
||||||
|
|
||||||
tuple& operator=(const tuple&);
|
tuple& operator=(const tuple&);
|
||||||
tuple&
|
tuple&
|
||||||
|
|
|
@ -70,10 +70,10 @@ struct pair
|
||||||
pair(const pair&) = default;
|
pair(const pair&) = default;
|
||||||
pair(pair&&) = default;
|
pair(pair&&) = default;
|
||||||
constexpr pair();
|
constexpr pair();
|
||||||
pair(const T1& x, const T2& y); // constexpr in C++14
|
explicit(see-below) pair(const T1& x, const T2& y); // constexpr in C++14
|
||||||
template <class U, class V> pair(U&& x, V&& y); // constexpr in C++14
|
template <class U, class V> explicit(see-below) pair(U&& x, V&& y); // constexpr in C++14
|
||||||
template <class U, class V> pair(const pair<U, V>& p); // constexpr in C++14
|
template <class U, class V> explicit(see-below) pair(const pair<U, V>& p); // constexpr in C++14
|
||||||
template <class U, class V> pair(pair<U, V>&& p); // constexpr in C++14
|
template <class U, class V> explicit(see-below) pair(pair<U, V>&& p); // constexpr in C++14
|
||||||
template <class... Args1, class... Args2>
|
template <class... Args1, class... Args2>
|
||||||
pair(piecewise_construct_t, tuple<Args1...> first_args,
|
pair(piecewise_construct_t, tuple<Args1...> first_args,
|
||||||
tuple<Args2...> second_args);
|
tuple<Args2...> second_args);
|
||||||
|
|
Loading…
Reference in New Issue