123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #ifndef BOOST_THREAD_ONCE_HPP
- #define BOOST_THREAD_ONCE_HPP
- // once.hpp
- //
- // (C) Copyright 2006-7 Anthony Williams
- //
- // 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)
- #include <boost/thread/detail/config.hpp>
- #ifdef BOOST_MSVC
- # pragma warning(push)
- # pragma warning(disable: 4702) // unreachable code
- #endif
- #include <boost/thread/detail/platform.hpp>
- #if defined(BOOST_THREAD_PLATFORM_WIN32)
- #include <boost/thread/win32/once.hpp>
- #elif defined(BOOST_THREAD_PLATFORM_PTHREAD)
- #if defined BOOST_THREAD_ONCE_FAST_EPOCH
- #include <boost/thread/pthread/once.hpp>
- #elif defined BOOST_THREAD_ONCE_ATOMIC
- #include <boost/thread/pthread/once_atomic.hpp>
- #else
- #error "Once Not Implemented"
- #endif
- #else
- #error "Boost threads unavailable on this platform"
- #endif
- #include <boost/config/abi_prefix.hpp>
- namespace boost
- {
- // template<class Callable, class ...Args> void
- // call_once(once_flag& flag, Callable&& func, Args&&... args);
- template<typename Function>
- inline void call_once(Function func,once_flag& flag)
- //inline void call_once(void (*func)(),once_flag& flag)
- {
- call_once(flag,func);
- }
- }
- #include <boost/config/abi_suffix.hpp>
- #ifdef BOOST_MSVC
- # pragma warning(pop)
- #endif
- #endif
|