constexpr tuple& operator=(const tuple& u);
constexpr const tuple& operator=(const tuple& u) const;
constexpr tuple& operator=(tuple&& u) noexcept(see below);
constexpr const tuple& operator=(tuple&& u) const;
template<class... UTypes> constexpr tuple& operator=(const tuple<UTypes...>& u);
template<class... UTypes> constexpr const tuple& operator=(const tuple<UTypes...>& u) const;
template<class... UTypes> constexpr tuple& operator=(tuple<UTypes...>&& u);
template<class... UTypes> constexpr const tuple& operator=(tuple<UTypes...>&& u) const;
template<class U1, class U2> constexpr tuple& operator=(const pair<U1, U2>& u);
template<class U1, class U2> constexpr const tuple& operator=(const pair<U1, U2>& u) const;
template<class U1, class U2> constexpr tuple& operator=(pair<U1, U2>&& u);
template<class U1, class U2> constexpr const tuple& operator=(pair<U1, U2>&& u) const;
template<tuple-like UTuple>
constexpr tuple& operator=(UTuple&& u);
template<tuple-like UTuple>
constexpr const tuple& operator=(UTuple&& u) const;