#include "../Tests.h" namespace OverlappingNamespace { enum ColorsEnum { white, black, red, blue, green, }; class DLL_API InBaseLib { }; } class DLL_API Base { public: Base(int i); Base(); int parent(); private: int b; }; class DLL_API Base2 : public Base { public: Base2(int i); Base2(); virtual void parent(int i); }; class DLL_API Abstract { public: virtual void abstractFunction() = 0; }; template class TemplateClass { public: T getField() const; void setField(const T& value); private: union { int i; float f; }; T t; }; template T TemplateClass::getField() const { return t; } template void TemplateClass::setField(const T& value) { t = value; } template class IndependentFields { public: class Nested { private: T field; }; private: union { int i; float* f; }; }; template class DependentFields { public: class Nested { }; Nested useDependentPointer(const T* t); const T& constField() const; private: T* t = new T; Nested nested; }; template const T& DependentFields::constField() const { return *t; } template typename DependentFields::Nested DependentFields::useDependentPointer(const T* t) { return Nested(); } class DLL_API HasVirtualInCore { public: HasVirtualInCore(); HasVirtualInCore(TemplateClass t); virtual int virtualInCore(int parameter); }; class DLL_API DerivedFromSecondaryBaseInDependency; typedef DerivedFromSecondaryBaseInDependency RenameDerivedBeforeBase; class DLL_API SecondaryBase { public: void function(); };