#include <cds/container/details/ellen_bintree_base.h>
#include <cds/intrusive/ellen_bintree_rcu.h>
-#include <cds/details/functor_wrapper.h>
namespace cds { namespace container {
#include <type_traits>
#include <cds/container/details/ellen_bintree_base.h>
#include <cds/intrusive/impl/ellen_bintree.h>
-#include <cds/details/functor_wrapper.h>
#include <cds/container/details/guarded_ptr_cast.h>
namespace cds { namespace container {
#include <memory>
#include <functional> // ref
-#include <cds/details/functor_wrapper.h>
#include <cds/container/details/guarded_ptr_cast.h>
namespace cds { namespace container {
#include <memory>
#include <functional> // ref
-#include <cds/details/functor_wrapper.h>
#include <cds/container/details/guarded_ptr_cast.h>
namespace cds { namespace container {
#ifndef __CDS_CONTAINER_IMPL_SKIP_LIST_MAP_H
#define __CDS_CONTAINER_IMPL_SKIP_LIST_MAP_H
-#include <cds/details/functor_wrapper.h>
#include <cds/gc/guarded_ptr.h>
#include <cds/container/details/guarded_ptr_cast.h>
#include <cds/container/details/lazy_list_base.h>
#include <cds/intrusive/lazy_list_nogc.h>
#include <cds/container/details/make_lazy_kvlist.h>
-#include <cds/details/functor_wrapper.h>
namespace cds { namespace container {
#include <cds/container/details/lazy_list_base.h>
#include <cds/intrusive/lazy_list_rcu.h>
#include <cds/container/details/make_lazy_kvlist.h>
-#include <cds/details/functor_wrapper.h>
namespace cds { namespace container {
#include <cds/container/details/michael_list_base.h>
#include <cds/intrusive/michael_list_nogc.h>
#include <cds/container/details/make_michael_kvlist.h>
-#include <cds/details/functor_wrapper.h>
namespace cds { namespace container {
#include <cds/container/details/michael_list_base.h>
#include <cds/intrusive/michael_list_rcu.h>
#include <cds/container/details/make_michael_kvlist.h>
-#include <cds/details/functor_wrapper.h>
namespace cds { namespace container {
#include <cds/container/details/skip_list_base.h>
#include <cds/intrusive/skip_list_rcu.h>
#include <cds/container/details/make_skip_list_map.h>
-#include <cds/details/functor_wrapper.h>
namespace cds { namespace container {
#include <cds/intrusive/split_list.h>
#include <cds/container/details/make_split_list_set.h>
-#include <cds/details/functor_wrapper.h>
namespace cds { namespace container {
#include <cds/intrusive/split_list_rcu.h>
#include <cds/container/details/make_split_list_set.h>
-#include <cds/details/functor_wrapper.h>
namespace cds { namespace container {
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_DETAILS_FUNCTOR_WRAPPER_H
-#define __CDS_DETAILS_FUNCTOR_WRAPPER_H
-
-#include <functional> // ref
-
-//@cond
-namespace cds { namespace details {
-
- template <typename Functor>
- struct functor_wrapper
- {
- public:
- functor_wrapper()
- {}
-
- functor_wrapper( Functor /*f*/)
- {}
-
- Functor get()
- {
- return Functor();
- }
- };
-
- template <typename Functor>
- struct functor_wrapper<Functor&>
- {
- Functor& m_func;
- public:
- functor_wrapper( Functor& f)
- : m_func(f)
- {}
-
- Functor& get()
- {
- return m_func;
- }
- };
-
- template <typename Functor>
- struct functor_wrapper< std::reference_wrapper<Functor> >
- {
- std::reference_wrapper<Functor> m_func;
- public:
- functor_wrapper( std::reference_wrapper<Functor> f)
- : m_func(f)
- {}
-
- Functor& get()
- {
- return m_func.get();
- }
- };
-
- template <typename Result, typename... Args>
- struct functor_wrapper<Result (*)(Args...)>
- {
- typedef Result (* func_ptr)(Args...);
- typedef Result (& func_ref)(Args...);
- func_ptr m_func;
- public:
- functor_wrapper( func_ptr f )
- : m_func(f)
- {}
-
- func_ref get()
- {
- assert( m_func );
- return *m_func;
- }
- };
-}} // namespace cds::details
-//@endcond
-
-#endif // #ifndef __CDS_DETAILS_FUNCTOR_WRAPPER_H
#include <cds/opt/hash.h>
#include <cds/lock/array.h>
#include <cds/os/thread.h>
-#include <cds/details/functor_wrapper.h>
#include <cds/lock/spinlock.h>
#include <cds/details/allocator.h>
#include <cds/algo/int_algo.h>
#include <cds/algo/bitop.h>
-#include <cds/details/functor_wrapper.h>
namespace cds { namespace intrusive {