#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 #ifdef BOOST_MSVC # pragma warning(push) # pragma warning(disable: 4702) // unreachable code #endif #include #if defined(BOOST_THREAD_PLATFORM_WIN32) #include #elif defined(BOOST_THREAD_PLATFORM_PTHREAD) #if defined BOOST_THREAD_ONCE_FAST_EPOCH #include #elif defined BOOST_THREAD_ONCE_ATOMIC #include #else #error "Once Not Implemented" #endif #else #error "Boost threads unavailable on this platform" #endif #include namespace lslboost { // template void // call_once(once_flag& flag, Callable&& func, Args&&... args); template inline void call_once(Function func,once_flag& flag) //inline void call_once(void (*func)(),once_flag& flag) { call_once(flag,func); } } #include #ifdef BOOST_MSVC # pragma warning(pop) #endif #endif