Skip to content
  1. Aug 26, 2009
    • Douglas Gregor's avatar
      Test out-of-line definition of a static data member of a member class of a... · 24ebdae1
      Douglas Gregor authored
      Test out-of-line definition of a static data member of a member class of a nested class template. Phew
      
      llvm-svn: 80046
      24ebdae1
    • Douglas Gregor's avatar
    • Douglas Gregor's avatar
      Improve support for out-of-line definitions of nested templates and · e861bac0
      Douglas Gregor authored
      their members, including member class template, member function
      templates, and member classes and functions of member templates.
      
      To actually parse the nested-name-specifiers that qualify the name of
      an out-of-line definition of a member template, e.g.,
      
        template<typename X> template<typename Y>
        X Outer<X>::Inner1<Y>::foo(Y) {
          return X();
        }
      
      we need to look for the template names (e.g., "Inner1") as a member of
      the current instantiation (Outer<X>), even before we have entered the
      scope of the current instantiation. Since we can't do this in general
      (i.e., we should not be looking into all dependent
      nested-name-specifiers as if they were the current instantiation), we
      rely on the parser to tell us when it is parsing a declaration
      specifier sequence, and, therefore, when we should consider the
      current scope specifier to be a current instantiation.
      
      Printing of complicated, dependent nested-name-specifiers may be
      somewhat broken by this commit; I'll add tests for this issue and fix
      the problem (if it still exists) in a subsequent commit.
      
      llvm-svn: 80044
      e861bac0
  2. Aug 25, 2009
  3. Jun 18, 2009
  4. Mar 27, 2009
Loading