constexpr indirect& operator=(const indirect& other);
constexpr indirect& operator=(indirect&& other)
noexcept(allocator_traits<Allocator>::propagate_on_container_move_assignment::value ||
allocator_traits<Allocator>::is_always_equal::value);
template<class U = T>
constexpr indirect& operator=(U&& u);