https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89128

            Bug ID: 89128
           Summary: Missing CTAD deduction guides for std::stack and
                    std::queue
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: arthur.j.odwyer at gmail dot com
  Target Milestone: ---

https://godbolt.org/z/IdXUBQ

    std::deque<int> dq;
    auto st = std::stack{dq};

This should be deduced as equivalent to

    auto st = std::stack<int, std::deque<int>>{dq};

because of the deduction guide in http://eel.is/c++draft/stack.defn

    template<class Container>
      stack(Container) -> stack<typename Container::value_type, Container>;

Instead, libstdc++ gives an error.
It looks to me as if nobody's gotten around to putting the required deduction
guides in /libstdc++-v3/include/bits/stl_stack.h yet.

----

Same deal for std::queue:

    std::list<int> lst;
    auto q = std::queue{lst};

should be deduced as equivalent to

    auto q = std::queue<int, std::list<int>>{lst};

Reply via email to