summaryrefslogtreecommitdiff
path: root/boost/intrusive/detail/ebo_functor_holder.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/intrusive/detail/ebo_functor_holder.hpp')
-rw-r--r--boost/intrusive/detail/ebo_functor_holder.hpp51
1 files changed, 26 insertions, 25 deletions
diff --git a/boost/intrusive/detail/ebo_functor_holder.hpp b/boost/intrusive/detail/ebo_functor_holder.hpp
index 9fec5a32b7..ef278ed805 100644
--- a/boost/intrusive/detail/ebo_functor_holder.hpp
+++ b/boost/intrusive/detail/ebo_functor_holder.hpp
@@ -22,6 +22,7 @@
# pragma once
#endif
+#include <boost/intrusive/detail/workaround.hpp>
#include <boost/move/utility_core.hpp>
namespace boost {
@@ -165,57 +166,57 @@ class ebo_functor_holder
public:
typedef T functor_type;
- ebo_functor_holder()
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder()
: t_()
{}
- explicit ebo_functor_holder(const T &t)
+ BOOST_INTRUSIVE_FORCEINLINE explicit ebo_functor_holder(const T &t)
: t_(t)
{}
- explicit ebo_functor_holder(BOOST_RV_REF(T) t)
+ BOOST_INTRUSIVE_FORCEINLINE explicit ebo_functor_holder(BOOST_RV_REF(T) t)
: t_(::boost::move(t))
{}
template<class Arg1, class Arg2>
- ebo_functor_holder(BOOST_FWD_REF(Arg1) arg1, BOOST_FWD_REF(Arg2) arg2)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder(BOOST_FWD_REF(Arg1) arg1, BOOST_FWD_REF(Arg2) arg2)
: t_(::boost::forward<Arg1>(arg1), ::boost::forward<Arg2>(arg2))
{}
- ebo_functor_holder(const ebo_functor_holder &x)
- : t_(x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder(const ebo_functor_holder &x)
+ : t_(x.t_)
{}
- ebo_functor_holder(BOOST_RV_REF(ebo_functor_holder) x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder(BOOST_RV_REF(ebo_functor_holder) x)
: t_(x.t_)
{}
- ebo_functor_holder& operator=(BOOST_COPY_ASSIGN_REF(ebo_functor_holder) x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder& operator=(BOOST_COPY_ASSIGN_REF(ebo_functor_holder) x)
{
this->get() = x.get();
return *this;
}
- ebo_functor_holder& operator=(BOOST_RV_REF(ebo_functor_holder) x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder& operator=(BOOST_RV_REF(ebo_functor_holder) x)
{
this->get() = ::boost::move(x.get());
return *this;
}
- ebo_functor_holder& operator=(const T &x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder& operator=(const T &x)
{
this->get() = x;
return *this;
}
- ebo_functor_holder& operator=(BOOST_RV_REF(T) x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder& operator=(BOOST_RV_REF(T) x)
{
this->get() = ::boost::move(x);
return *this;
}
- T& get(){return t_;}
- const T& get()const{return t_;}
+ BOOST_INTRUSIVE_FORCEINLINE T& get(){return t_;}
+ BOOST_INTRUSIVE_FORCEINLINE const T& get()const{return t_;}
private:
T t_;
@@ -230,58 +231,58 @@ class ebo_functor_holder<T, false>
public:
typedef T functor_type;
- ebo_functor_holder()
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder()
: T()
{}
- explicit ebo_functor_holder(const T &t)
+ BOOST_INTRUSIVE_FORCEINLINE explicit ebo_functor_holder(const T &t)
: T(t)
{}
- explicit ebo_functor_holder(BOOST_RV_REF(T) t)
+ BOOST_INTRUSIVE_FORCEINLINE explicit ebo_functor_holder(BOOST_RV_REF(T) t)
: T(::boost::move(t))
{}
template<class Arg1, class Arg2>
- ebo_functor_holder(BOOST_FWD_REF(Arg1) arg1, BOOST_FWD_REF(Arg2) arg2)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder(BOOST_FWD_REF(Arg1) arg1, BOOST_FWD_REF(Arg2) arg2)
: T(::boost::forward<Arg1>(arg1), ::boost::forward<Arg2>(arg2))
{}
- ebo_functor_holder(const ebo_functor_holder &x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder(const ebo_functor_holder &x)
: T(static_cast<const T&>(x))
{}
- ebo_functor_holder(BOOST_RV_REF(ebo_functor_holder) x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder(BOOST_RV_REF(ebo_functor_holder) x)
: T(BOOST_MOVE_BASE(T, x))
{}
- ebo_functor_holder& operator=(BOOST_COPY_ASSIGN_REF(ebo_functor_holder) x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder& operator=(BOOST_COPY_ASSIGN_REF(ebo_functor_holder) x)
{
const ebo_functor_holder&r = x;
this->get() = x.get();
return *this;
}
- ebo_functor_holder& operator=(BOOST_RV_REF(ebo_functor_holder) x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder& operator=(BOOST_RV_REF(ebo_functor_holder) x)
{
this->get() = ::boost::move(x.get());
return *this;
}
- ebo_functor_holder& operator=(const T &x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder& operator=(const T &x)
{
this->get() = x;
return *this;
}
- ebo_functor_holder& operator=(BOOST_RV_REF(T) x)
+ BOOST_INTRUSIVE_FORCEINLINE ebo_functor_holder& operator=(BOOST_RV_REF(T) x)
{
this->get() = ::boost::move(x);
return *this;
}
- T& get(){return *this;}
- const T& get()const{return *this;}
+ BOOST_INTRUSIVE_FORCEINLINE T& get(){return *this;}
+ BOOST_INTRUSIVE_FORCEINLINE const T& get()const{return *this;}
};
} //namespace detail {