#
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;