[Bug c++/61260] New: Issue with instantiates of variadic templates inside other templates (possibly name lookup problem)

delong.j at fb dot com gcc-bugzilla@gcc.gnu.org
Tue May 20 23:31:00 GMT 2014


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

            Bug ID: 61260
           Summary: Issue with instantiates of variadic templates inside
                    other templates (possibly name lookup problem)
           Product: gcc
           Version: 4.8.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: delong.j at fb dot com

Created attachment 32833
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=32833&action=edit
Example source snippets

Calling a variadic function template that returns an instantiation of a
variadic class template seems to sometimes incorrectly fail to find member
functions of the class.

In the attached, error.cc says:

  error: ‘Hey::str() [with Blah = {const char (&)[7], const char*&};
std::string = std::basic_string]’ is not a member of ‘Hey’

Modifying it to fixed.cc compiles.

If you make the strings the same length in the ternary operator, it also
compiles.  (fixed2.cc.)

Turning the struct "A" into a non-template also leads to it compiling
(fixed3.cc).


More information about the Gcc-bugs mailing list