]> granicus.if.org Git - clang/commit
Implement template instantiation for static data members of class
authorDouglas Gregor <dgregor@apple.com>
Wed, 25 Mar 2009 23:32:15 +0000 (23:32 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 25 Mar 2009 23:32:15 +0000 (23:32 +0000)
commit3d7a12a50558c31d4351e923c15ab57688f4fdf2
tree5eea1a3652a8ac151eb658503615c762dc3a0188
parent667423a545c1f62efc32b48e5ce19c1c90181d4a
Implement template instantiation for static data members of class
templates, including in-class initializers. For example:

  template<typename T, T Divisor>
  class X {
  public:
    static const T value = 10 / Divisor;
  };

instantiated with, e.g.,

  X<int, 5>::value

to get the value '2'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67715 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/Sema.h
lib/Sema/SemaDecl.cpp
lib/Sema/SemaTemplateInstantiateDecl.cpp
test/SemaTemplate/fibonacci.cpp
test/SemaTemplate/instantiate-static-var.cpp [new file with mode: 0644]