brintos

brintos / llvm-project-archived public Read only

0
0
Text · 831 B · 72f33df Raw
34 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3struct NonDefaultConstructible {4  NonDefaultConstructible(const NonDefaultConstructible&); // expected-note{{candidate constructor}}5};6 7template<typename T, typename U>8struct X {9  static T member;10};11 12template<typename T, typename U>13T X<T, U>::member; // expected-error{{no matching constructor}}14 15// Okay; this is a declaration, not a definition.16template<>17NonDefaultConstructible X<NonDefaultConstructible, long>::member;18 19NonDefaultConstructible &test(bool b) {20  return b? X<NonDefaultConstructible, int>::member // expected-note{{instantiation}}21          : X<NonDefaultConstructible, long>::member;22}23 24namespace rdar9422013 {25  template<int>26  struct X {27    struct Inner {28      static unsigned array[17];29    };30  };31 32  template<> unsigned X<1>::Inner::array[]; // okay33}34