template <class T> void Register_CompileTargetBase(asIScriptEngine* engine, const wxString& classname)
{
// add CompileOptionsBase methods/properties
Register_CompileOptionsBase<T>(engine, classname);
engine->RegisterObjectMethod(cbU2C(classname), "wxString& GetFilename()", asMETHOD(T, GetFilename), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString& GetTitle()", asMETHOD(T, GetTitle), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "void SetTitle(const wxString& in)", asMETHOD(T, SetTitle), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "void SetOutputFilename(const wxString& in)", asMETHOD(T, SetOutputFilename), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "void SetWorkingDir(const wxString& in)", asMETHOD(T, SetWorkingDir), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "void SetObjectOutput(const wxString& in)", asMETHOD(T, SetObjectOutput), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "void SetDepsOutput(const wxString& in)", asMETHOD(T, SetDepsOutput), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "int GetOptionRelation(int)", asMETHOD(T, GetOptionRelation), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "void SetOptionRelation(int,int)", asMETHOD(T, SetOptionRelation), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString GetWorkingDir()", asMETHOD(T, GetWorkingDir), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString GetObjectOutput()", asMETHOD(T, GetObjectOutput), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString GetDepsOutput()", asMETHOD(T, GetDepsOutput), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString GetOutputFilename()", asMETHOD(T, GetOutputFilename), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString SuggestOutputFilename()", asMETHOD(T, SuggestOutputFilename), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString GetExecutableFilename()", asMETHOD(T, GetExecutableFilename), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString GetDynamicLibFilename()", asMETHOD(T, GetDynamicLibFilename), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString GetStaticLibFilename()", asMETHOD(T, GetStaticLibFilename), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString GetBasePath()", asMETHOD(T, GetBasePath), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "void SetTargetType(const int& in)", asMETHOD(T, SetTargetType), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "int& GetTargetType()", asMETHOD(T, GetTargetType), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString& GetExecutionParameters()", asMETHOD(T, GetExecutionParameters), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "void SetExecutionParameters(const wxString& in)", asMETHOD(T, SetExecutionParameters), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "wxString& GetHostApplication()", asMETHOD(T, GetHostApplication), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "void SetHostApplication(const wxString& in)", asMETHOD(T, SetHostApplication), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "void SetCompilerID(const wxString& in)", asMETHOD(T, SetCompilerID), asCALL_THISCALL);
engine->RegisterObjectMethod(cbU2C(classname), "const wxString& GetCompilerID() const", asMETHOD(T, GetCompilerID), asCALL_THISCALL);
}
sdk\as\bindings\scriptbindings.cpp(282) : error C2440: 'type cast' : cannot convert from 'const wxString &(__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(341) : see reference to function template instantiation 'void Register_CompileTargetBase<ProjectBuildTarget>(asIScriptEngine *,const wxString &)' being compiled
sdk\as\bindings\scriptbindings.cpp(283) : error C2440: 'type cast' : cannot convert from 'const wxString &(__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(284) : error C2440: 'type cast' : cannot convert from 'void (__thiscall CompileTargetBase::* )(const wxString &)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(285) : error C2440: 'type cast' : cannot convert from 'void (__thiscall CompileTargetBase::* )(const wxString &)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(286) : error C2440: 'type cast' : cannot convert from 'void (__thiscall CompileTargetBase::* )(const wxString &)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(287) : error C2440: 'type cast' : cannot convert from 'void (__thiscall CompileTargetBase::* )(const wxString &)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(288) : error C2440: 'type cast' : cannot convert from 'void (__thiscall CompileTargetBase::* )(const wxString &)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(289) : error C2440: 'type cast' : cannot convert from 'OptionsRelation (__thiscall CompileTargetBase::* )(OptionsRelationType)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(290) : error C2440: 'type cast' : cannot convert from 'void (__thiscall CompileTargetBase::* )(OptionsRelationType,OptionsRelation)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(291) : error C2440: 'type cast' : cannot convert from 'wxString (__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(292) : error C2440: 'type cast' : cannot convert from 'wxString (__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(293) : error C2440: 'type cast' : cannot convert from 'wxString (__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(294) : error C2440: 'type cast' : cannot convert from 'wxString (__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(295) : error C2440: 'type cast' : cannot convert from 'wxString (__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(296) : error C2440: 'type cast' : cannot convert from 'wxString (__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(297) : error C2440: 'type cast' : cannot convert from 'wxString (__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(298) : error C2440: 'type cast' : cannot convert from 'wxString (__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(299) : error C2440: 'type cast' : cannot convert from 'wxString (__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(301) : error C2440: 'type cast' : cannot convert from 'const TargetType &(__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(302) : error C2440: 'type cast' : cannot convert from 'const wxString &(__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(303) : error C2440: 'type cast' : cannot convert from 'void (__thiscall CompileTargetBase::* )(const wxString &)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(304) : error C2440: 'type cast' : cannot convert from 'const wxString &(__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(305) : error C2440: 'type cast' : cannot convert from 'void (__thiscall CompileTargetBase::* )(const wxString &)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(306) : error C2440: 'type cast' : cannot convert from 'void (__thiscall CompileTargetBase::* )(const wxString &)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
sdk\as\bindings\scriptbindings.cpp(307) : error C2440: 'type cast' : cannot convert from 'const wxString &(__thiscall CompileTargetBase::* )(void)' to 'void (__thiscall ProjectBuildTarget::* )(void)'
Pointers to members have different representations; cannot cast between them
Here's what the Visual C++ 2003 compiler(Note not the free toolkit) emits: