#include "../Tests.h" class DLL_API T1 { }; class DLL_API T2 { }; template class DLL_API IndependentFields : public T1 { private: int field; }; template class DLL_API DependentValueFields { private: T field; union { int unionField; }; }; template class DLL_API DependentPointerFields { private: T* field; }; template class TwoTemplateArgs { private: K key; V value; }; template > class HasDefaultTemplateArgument { T field; }; class DLL_API TemplateSpecializer { public: TemplateSpecializer(); private: IndependentFields independentFields; DependentValueFields dependentValueFields; DependentPointerFields dependentPointerFields; HasDefaultTemplateArgument hasDefaultTemplateArgument; DependentValueFields dependentPointerFieldsT1; DependentValueFields dependentPointerFieldsT2; DependentValueFields> specializeWithSpecialization; DependentValueFields> specializeWithSameSpecialization; void completeSpecializationInParameter(DependentValueFields p1, DependentValueFields p2, DependentValueFields p3); void completeSpecializationInParameter(TwoTemplateArgs p1, TwoTemplateArgs p2, TwoTemplateArgs p3); }; template class PartiallySpecialized { }; template class PartiallySpecialized { union { int i; float f; }; };