Fix compilation with gcc 4.5 in C++11 mode

Gcc 4.5 does not allow non-public defaulted functions, so fall back to the C++03 version. Also replaced the deprecated macros with the new ones and adjusted formatting.
This commit is contained in:
Andrey Semashev 2014-04-10 00:27:41 +04:00
parent d4b5fde5a8
commit 8ae3bfa961

View File

@ -22,19 +22,19 @@ namespace noncopyable_ // protection from unintended ADL
{ {
class noncopyable class noncopyable
{ {
protected: protected:
#ifndef BOOST_NO_DEFAULTED_FUNCTIONS #if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS)
BOOST_CONSTEXPR noncopyable() = default; BOOST_CONSTEXPR noncopyable() = default;
~noncopyable() = default; ~noncopyable() = default;
#else #else
noncopyable() {} noncopyable() {}
~noncopyable() {} ~noncopyable() {}
#endif #endif
#ifndef BOOST_NO_DELETED_FUNCTIONS #if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS)
noncopyable( const noncopyable& ) = delete; noncopyable( const noncopyable& ) = delete;
noncopyable& operator=( const noncopyable& ) = delete; noncopyable& operator=( const noncopyable& ) = delete;
#else #else
private: // emphasize the following members are private private: // emphasize the following members are private
noncopyable( const noncopyable& ); noncopyable( const noncopyable& );
noncopyable& operator=( const noncopyable& ); noncopyable& operator=( const noncopyable& );
#endif #endif