/trunk/Examples/test-suite/rename.h
C++ Header | 44 lines | 38 code | 5 blank | 1 comment | 0 complexity | fcbdd4818a37de806298e46222a83cb2 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- namespace Space {
- struct Klass {
- Klass(int i) {}
- Klass() {}
- };
- }
- namespace AnotherSpace {
- class Another {};
- }
- namespace Space {
- using namespace AnotherSpace;
- enum Enu { En1, En2, En3 };
- template<typename T> struct NotXYZ {};
- template<typename T> class XYZ {
- NotXYZ<int> *m_int;
- T m_t;
- NotXYZ<T> m_notxyz;
- public:
- operator NotXYZ<int>*() const { return m_int; }
- operator XYZ<int>*() const { return 0; }
- operator Another() const { Another an; return an; }
- void templateT(T i) {}
- void templateNotXYZ(NotXYZ<T> i) {}
- void templateXYZ(XYZ<T> i) {}
- operator T() { return m_t; }
- operator NotXYZ<T>() const { return m_notxyz; }
- operator XYZ<T>() const { XYZ<T> xyz = XYZ<T>(); return xyz; }
- };
- }
- namespace Space {
- // non-templated class using itself in method and operator
- class ABC {
- public:
- void method(ABC a) const {}
- void method(Klass k) const {}
- operator ABC() const { ABC a; return a; }
- operator Klass() const { Klass k; return k; }
- };
- }