2009-05-30 06:31:56 +00:00
|
|
|
//-*- 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;
|
2009-05-30 06:48:27 +00:00
|
|
|
|
|
|
|
namespace safestl = ::std::debug;
|
2009-05-30 06:58:37 +00:00
|
|
|
|
|
|
|
class Base1 {
|
|
|
|
};
|
|
|
|
|
|
|
|
class Base2 { };
|
|
|
|
|
|
|
|
class Derived1 : Base1, virtual public Base2 { };
|
2010-12-15 15:06:14 +00:00
|
|
|
|
|
|
|
/* Template classes, template functions */
|
|
|
|
enum E1 { EC1 };
|
|
|
|
template <E1 v> class C1 {};
|
|
|
|
template <E1 v> C1<v> f1() { return C1<v>(); }
|
|
|
|
void f2() { f1<EC1>(); }
|
2017-01-03 12:07:20 +00:00
|
|
|
|
|
|
|
// Friend declarations
|
|
|
|
struct FriendlyStruct {
|
|
|
|
friend bool operator==(FriendlyStruct, FriendlyStruct) { return true; }
|
|
|
|
friend struct FriendedStruct;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct FriendedStruct { };
|
2017-01-03 12:08:40 +00:00
|
|
|
|
|
|
|
// Using declaration
|
|
|
|
namespace provider {
|
|
|
|
void foo();
|
|
|
|
}
|
|
|
|
namespace user {
|
|
|
|
using provider::foo;
|
|
|
|
}
|