//-*- C++ -*- // Intended to exercise all syntactic parts of the C++ language that // aren't part of C. namespace std { namespace debug { } } using namespace std::debug; using namespace std; namespace safestl = ::std::debug; class Base1 { }; class Base2 { }; class Derived1 : Base1, virtual public Base2 { }; /* Template classes, template functions */ enum E1 { EC1 }; template class C1 {}; template C1 f1() { return C1(); } void f2() { f1(); } // Friend declarations struct FriendlyStruct { friend bool operator==(FriendlyStruct, FriendlyStruct) { return true; } friend struct FriendedStruct; }; struct FriendedStruct { }; // Using declaration namespace provider { void foo(); } namespace user { using provider::foo; } // Empty declaration ; // Template specialization declarations template class ClassTemplateSpecialization; template<> class ClassTemplateSpecialization { }; template struct ClassTemplatePartialSpecialization; template struct ClassTemplatePartialSpecialization { }; // Access specifier struct AccessSpec { private: }; // Variable template template T varTemplate = 0; static_assert(true, "");