c++ - How to detect declaration of class at compile-time? -
i'm use 3-rd party library @ project. after updating new version of library i'm faced errors.
one class have method
virtual rtspserver::rtspclientsession* createnewclientsession(u_int32_t sessionid)override;
but in new version of library declaration of rtspclientsession moved class , renamed. correct name
genericmediaserver::clientsession
i need code correctly compiles versions of library.
at gcc use following code:
#ifdef rtspserver::rtspclientsession using clientsessionclass = rtspserver::rtspclientsession; #else using clientsessionclass = genericmediaserver::clientsession; #endif class { ......... virtual clientsessionclass* createnewclientsession(u_int32_t sessionid)override; };
but not work in msvc 2010. how can detect declaration should use?
upd: code gcc don't work old version of library :(
"how can detect declaration should use?"
you need introduce discriminator library version you're using current build configuration:
#ifdef old_library_version // maybe binding headers have information this. // if not have select manually, , provide // setting project configuration. using clientsessionclass = rtspserver::rtspclientsession; #else using clientsessionclass = genericmediaserver::clientsession; #endif
Comments
Post a Comment