在使用ASIO库的过程中,如果编译器不支持动态类型识别(RTTI),可能需要修改相关的代码。下面给出一个示例
修改boost库的头文件boost/asio/detail/noncopyable.hpp,将其中的代码:
class noncopyable { protected: noncopyable() {} ~noncopyable() {}
private: // emphasize the following members are private noncopyable( const noncopyable& ); const noncopyable& operator=( const noncopyable& ); };
修改为:
class noncopyable
{
protected:
noncopyable() {}
~noncopyable() {}
private: // emphasize the following members are private
#if defined(BOOST_ASIO_DISABLE_RTTI) noncopyable( const void* ); #else noncopyable( const noncopyable& ); #endif const noncopyable& operator=( const noncopyable& ); };
这样修改后,ASIO库就可以在不支持RTTI的编译器上正常编译运行了。