[Bug c++/94102] New: Variadic template deduction guide issue - error: 'In instantiation of'

rosemberg at ymail dot com gcc-bugzilla@gcc.gnu.org
Mon Mar 9 16:00:32 GMT 2020


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

            Bug ID: 94102
           Summary: Variadic template deduction guide issue - error: 'In
                    instantiation of'
           Product: gcc
           Version: 9.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rosemberg at ymail dot com
  Target Milestone: ---

The gcc9.2 (I tested with gcc7) return the follow error due the deduction guide
declaration:

In instantiation of 'Merged::Merged(T&& ...) (with T = {const main()::&, const
main()::&, main()::}; B = {}]':

#include <utility>

template<typename ... B>
struct Merged : B ... {
       template<typename ... T>
       Merged(T&& ... t) : B(std::forward<T>(t))... {}

    using B::operator()...;
};

template<typename ... T>
Merged(T...) -> Merged<std::decay_t<T>...>;

int main() {
    const auto l1 = []() { return 4; };
    const auto l2 = [](const int i) { return i * 10; };

    Merged merged(l1,
                  l2,
                  [](const double d) { return d * 3.2; });

    return 0;
}


More information about the Gcc-bugs mailing list