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

            Bug ID: 71223
           Summary: [fold expression] Incorrect processing a fold
                    expression
           Product: gcc
           Version: 6.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sergstrukovlink at gmail dot com
  Target Milestone: ---

Created attachment 38539
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38539&action=edit
example

In the attached example compiler fails to compile the following line

  Test2<short,int,long>(); // emits error

If I change the definition of

template <class T>
using AddType = TypeBox<T> ; // int 

to

template <class T>
using AddType = int ;

the error disappeares.

main.cpp: In instantiation of 'struct Test2<short int, int, long int>':
main.cpp:41:25:   required from here
main.cpp:23:74: error: invalid use of pack expansion expression
 using IndexList = decltype( ( IndexListBox<>() + ... + AddType<TT>() ) ) ;
                                                                          ^
make: *** [main.o] Error 1

Reply via email to