// Copyright (C) 2012 Vicente J. Botet Escriba // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_THREAD_DETAIL_DELETE_HPP #define BOOST_THREAD_DETAIL_DELETE_HPP #include /** * BOOST_THREAD_DELETE_COPY_CTOR deletes the copy constructor when the compiler supports it or * makes it private. * * BOOST_THREAD_DELETE_COPY_ASSIGN deletes the copy assignment when the compiler supports it or * makes it private. */ #ifndef BOOST_NO_CXX11_DELETED_FUNCTIONS #define BOOST_THREAD_DELETE_COPY_CTOR(CLASS) \ CLASS(CLASS const&) = delete; \ #define BOOST_THREAD_DELETE_COPY_ASSIGN(CLASS) \ CLASS& operator=(CLASS const&) = delete; #else // BOOST_NO_CXX11_DELETED_FUNCTIONS #define BOOST_THREAD_DELETE_COPY_CTOR(CLASS) \ private: \ CLASS(CLASS&); \ public: #define BOOST_THREAD_DELETE_COPY_ASSIGN(CLASS) \ private: \ CLASS& operator=(CLASS&); \ public: #endif // BOOST_NO_CXX11_DELETED_FUNCTIONS /** * BOOST_THREAD_NO_COPYABLE deletes the copy constructor and assignment when the compiler supports it or * makes them private. */ #define BOOST_THREAD_NO_COPYABLE(CLASS) \ BOOST_THREAD_DELETE_COPY_CTOR(CLASS) \ BOOST_THREAD_DELETE_COPY_ASSIGN(CLASS) #endif // BOOST_THREAD_DETAIL_DELETE_HPP