aboutsummaryrefslogblamecommitdiff
path: root/test/SemaTemplate/explicit-specialization-member.cpp
blob: cb0a39a9d0cf7ef16b2ec3fe79f59c9dd39dbe39 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                                           









                                   











                                                                                                                              
// RUN: %clang_cc1 -fsyntax-only -verify %s
template<typename T>
struct X0 {
  typedef T* type;
  
  void f0(T);
  void f1(type);
};

template<> void X0<char>::f0(char);
template<> void X0<char>::f1(type);

namespace PR6161 {
  template<typename _CharT>
  class numpunct : public locale::facet // expected-error{{use of undeclared identifier 'locale'}} \
              // expected-error{{expected class name}} \
  // expected-note{{attempt to specialize declaration here}}
  {
    static locale::id id; // expected-error{{use of undeclared identifier}} FIXME: expected-error {{unknown type name}}
  };
  numpunct<char>::~numpunct(); // expected-error{{template specialization requires 'template<>'}} \
  // expected-error{{specialization of member 'PR6161::numpunct<char>::~numpunct' does not specialize an instantiated member}}
}