#ifndef TESTLIB_HPP_INCLUDED #define TESTLIB_HPP_INCLUDED // Generic helper definitions for shared library support #if defined _WIN32 || defined __CYGWIN__ # define TESTLIB_HELPER_DLL_IMPORT __declspec(dllimport) # define TESTLIB_HELPER_DLL_EXPORT __declspec(dllexport) #else # if defined __GNUC__ && __GNUC__ >= 4 # define TESTLIB_HELPER_DLL_IMPORT __attribute__ ((visibility("default"))) # define TESTLIB_HELPER_DLL_EXPORT __attribute__ ((visibility("default"))) # else # define TESTLIB_HELPER_DLL_IMPORT # define TESTLIB_HELPER_DLL_EXPORT # endif #endif // TESTLIB_DLL is defined if we build the shared library, it is undefined // otherwise. The TESTLIB_API marks function and classes that should be // exported in the shared library. #ifdef TESTLIB_DLL # define TESTLIB_API __attribute__ ((visibility("default"))) #else # define TESTLIB_API TESTLIB_HELPER_DLL_IMPORT #endif #include #include #include class TESTLIB_API Base { public: virtual void identify(); private: friend class boost::serialization::access; template void serialize(Archive& ar, const unsigned int version); }; class TESTLIB_API Derived : public Base { public: virtual void identify(); private: friend class boost::serialization::access; template void serialize(Archive& ar, const unsigned int version); }; BOOST_SERIALIZATION_ASSUME_ABSTRACT(Base) #endif // TESTLIB_HPP_INCLUDED