// C++03まで
explicit stack(const Container& cont = Container()); // (1), (2)
// C++11以降 C++17まで
explicit stack(const Container& cont); // (2)
explicit stack(Container&& cont = Container()); // (1), (3)
// C++20以降
stack() : stack(Container()) {} // (1)
constexpr stack() : stack(Container()) {} // (1) C++26
explicit stack(const Container&); // (2)
constexpr explicit stack(const Container&); // (2) C++26
explicit stack(Container&&); // (3)
constexpr explicit stack(Container&&); // (3) C++26
template <class InputIterator>
stack(InputIterator first, InputIterator last); // (4) C++23
template <class InputIterator>
constexpr stack(InputIterator first, InputIterator last); // (4) C++26
template <class Allocator>
explicit stack(const Allocator& alloc); // (5) C++11
template <class Allocator>
constexpr explicit stack(const Allocator& alloc); // (5) C++26
template <class Allocator>
stack(const Container& cont, const Allocator& alloc); // (6) C++11
template <class Allocator>
constexpr stack(const Container& cont, const Allocator& alloc); // (6) C++26
template <class Allocator>
stack(Container&& cont, const Allocator& alloc); // (7) C++11
template <class Allocator>
constexpr stack(Container&& cont, const Allocator& alloc); // (7) C++26
template <class Allocator>
stack(const stack& st, const Allocator& alloc); // (8) C++11
template <class Allocator>
constexpr stack(const stack& st, const Allocator& alloc); // (8) C++26
template <class Allocator>
stack(stack&& st, const Allocator& alloc); // (9) C++11
template <class Allocator>
constexpr stack(stack&& st, const Allocator& alloc); // (9) C++26
template <class InputIterator, class Alloc>
stack(InputIterator first, InputIterator last, const Alloc&); // (10) C++23
template <class InputIterator, class Alloc>
constexpr stack(InputIterator first, InputIterator last, const Alloc&); // (10) C++26
template <container-compatible-range<T> R>
stack(from_range_t, R&& rg); // (11) C++23
template <container-compatible-range<T> R>
constexpr stack(from_range_t, R&& rg); // (11) C++26
template <container-compatible-range<T> R, class Alloc>
stack(from_range_t, R&& rg, const Alloc& alloc); // (12) C++23
template <container-compatible-range<T> R, class Alloc>
constexpr stack(from_range_t, R&& rg, const Alloc& alloc); // (12) C++26