hanchenye-llvm-project/clang/test/CXX
Douglas Gregor e93e46c690 Implement support for out-of-line definitions of the class members of class
templates, e.g.,

  template<typename T>
  struct Outer {
    struct Inner;
  };

  template<typename T>
  struct Outer<T>::Inner {
    // ...
  };

Implementing this feature required some extensions to ActOnTag, which
now takes a set of template parameter lists, and is the precursor to
removing the ActOnClassTemplate function from the parser Action
interface. The reason for this approach is simple: the parser cannot
tell the difference between a class template definition and the
definition of a member of a class template; both have template
parameter lists, and semantic analysis determines what that template
parameter list means.

There is still some cleanup to do with ActOnTag and
ActOnClassTemplate. This commit provides the basic functionality we
need, however.

llvm-svn: 76820
2009-07-22 23:48:44 +00:00
..
basic Fix a corner case with argument-dependent lookup and overloaded function sets. 2009-07-08 10:57:20 +00:00
class Prep for new warning. 2009-07-22 20:02:03 +00:00
dcl.dcl/dcl.spec Add another test. 2009-07-11 00:55:33 +00:00
dcl.decl/dcl.meaning Store the isAddressOfOperand in the UnresolvedDeclRefExpr, so that we can pass it when instantiating the expr. Fixes another member pointer bug. 2009-07-09 00:05:08 +00:00
over Fix test case to match intent. 2009-07-11 20:17:35 +00:00
temp Implement support for out-of-line definitions of the class members of class 2009-07-22 23:48:44 +00:00