Clang Project

clang_source_code/test/Coverage/cxx-language-features.inc
1//-*- C++ -*-
2
3// Intended to exercise all syntactic parts of the C++ language that
4// aren't part of C.
5
6namespace std {
7  namespace debug {
8  }
9}
10
11using namespace std::debug;
12using namespace std;
13
14namespace safestl = ::std::debug;
15
16class Base1 { 
17};
18
19class Base2 { };
20
21class Derived1 : Base1, virtual public Base2 { };
22
23/* Template classes, template functions */
24enum E1 { EC1 };
25template <E1 v> class C1 {};
26template <E1 v> C1<v> f1() { return C1<v>(); }
27void f2() { f1<EC1>(); }
28
29// Friend declarations
30struct FriendlyStruct {
31  friend bool operator==(FriendlyStruct, FriendlyStruct) { return true; }
32  friend struct FriendedStruct;
33};
34
35struct FriendedStruct { };
36
37// Using declaration
38namespace provider {
39  void foo();
40}
41namespace user {
42  using provider::foo;
43}
44
45// Empty declaration
46;
47
48// Template specialization declarations
49template<typename T> class ClassTemplateSpecialization;
50
51template<>
52class ClassTemplateSpecialization<bool> { };
53
54template<typename T, bool> struct ClassTemplatePartialSpecialization;
55
56template<typename T>
57struct ClassTemplatePartialSpecialization<T, true> { };
58
59// Access specifier
60struct AccessSpec {
61private:
62};
63
64// Variable template
65template <typename T> T varTemplate = 0;
66
67static_assert(true, "");
68