#include "../Tests.h" namespace OverlappingNamespace { enum ColorsEnum { white, black, red, blue, green, }; class DLL_API InBaseLib { public: 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 DLL_API TemplateWithIndependentFields { public: void useDependentPointer(const T* t); const T& constField() const; private: T* t = new T; }; template const T& TemplateWithIndependentFields::constField() const { return *t; } template void TemplateWithIndependentFields::useDependentPointer(const T* t) { } 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: SecondaryBase(); ~SecondaryBase(); void function(); }; // force the symbols for the template instantiations because we do not have the auto-compilation for the generated C++ source template class DLL_API TemplateClass;