summaryrefslogtreecommitdiff
path: root/boost/move/detail/move_helpers.hpp
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2016-10-06 10:30:07 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2016-10-06 10:32:57 +0900
commit71d216b90256936a9638f325af9bc69d720e75de (patch)
tree9c5f682d341c7c88ad0c8e3d4b262e00b6fb691a /boost/move/detail/move_helpers.hpp
parent733b5d5ae2c5d625211e2985ac25728ac3f54883 (diff)
downloadboost-71d216b90256936a9638f325af9bc69d720e75de.tar.gz
boost-71d216b90256936a9638f325af9bc69d720e75de.tar.bz2
boost-71d216b90256936a9638f325af9bc69d720e75de.zip
Imported Upstream version 1.59.0
Change-Id: I2dde00f4eca71df3eea9d251dcaecde18a6c90a5 Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/move/detail/move_helpers.hpp')
-rw-r--r--boost/move/detail/move_helpers.hpp53
1 files changed, 30 insertions, 23 deletions
diff --git a/boost/move/detail/move_helpers.hpp b/boost/move/detail/move_helpers.hpp
index f4fd26c154..e3b8883159 100644
--- a/boost/move/detail/move_helpers.hpp
+++ b/boost/move/detail/move_helpers.hpp
@@ -48,20 +48,24 @@
{ return FWD_FUNCTION(const_cast<const TYPE &>(x)); }\
\
template<class BOOST_MOVE_TEMPL_PARAM>\
- typename ::boost::move_detail::enable_if_c\
- < ::boost::move_detail::is_class_or_union<TYPE>::value &&\
- ::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM>::value &&\
- !::boost::has_move_emulation_enabled<BOOST_MOVE_TEMPL_PARAM>::value\
- , RETURN_VALUE >::type\
+ typename ::boost::move_detail::enable_if_and\
+ < RETURN_VALUE \
+ , ::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM>\
+ , ::boost::move_detail::is_class_or_union<TYPE>\
+ , ::boost::has_move_emulation_disabled<BOOST_MOVE_TEMPL_PARAM>\
+ >::type\
PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\
{ return FWD_FUNCTION(u); }\
\
template<class BOOST_MOVE_TEMPL_PARAM>\
- typename ::boost::move_detail::enable_if_c\
- < (!::boost::move_detail::is_class_or_union<BOOST_MOVE_TEMPL_PARAM>::value || \
- !::boost::move_detail::is_rv<BOOST_MOVE_TEMPL_PARAM>::value) && \
- !::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM>::value \
- , RETURN_VALUE >::type\
+ typename ::boost::move_detail::disable_if_or\
+ < RETURN_VALUE \
+ , ::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM> \
+ , ::boost::move_detail::and_ \
+ < ::boost::move_detail::is_rv<BOOST_MOVE_TEMPL_PARAM> \
+ , ::boost::move_detail::is_class_or_union<BOOST_MOVE_TEMPL_PARAM> \
+ > \
+ >::type\
PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\
{\
TYPE t(u);\
@@ -115,19 +119,21 @@
{ return FWD_FUNCTION(arg1, const_cast<const TYPE &>(x)); }\
\
template<class BOOST_MOVE_TEMPL_PARAM>\
- typename ::boost::move_detail::enable_if_c<\
- ::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM>::value &&\
- !::boost::has_move_emulation_enabled<BOOST_MOVE_TEMPL_PARAM>::value\
- , RETURN_VALUE >::type\
+ typename ::boost::move_detail::enable_if_and\
+ < RETURN_VALUE \
+ , ::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM>\
+ , ::boost::has_move_emulation_disabled<BOOST_MOVE_TEMPL_PARAM>\
+ >::type\
PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u)\
{ return FWD_FUNCTION(arg1, u); }\
\
template<class BOOST_MOVE_TEMPL_PARAM>\
- typename ::boost::move_detail::enable_if_c<\
- !::boost::move_detail::is_rv<BOOST_MOVE_TEMPL_PARAM>::value && \
- !::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM>::value && \
- !::boost::move_detail::is_convertible<BOOST_MOVE_TEMPL_PARAM, UNLESS_CONVERTIBLE_TO>::value \
- , RETURN_VALUE >::type\
+ typename ::boost::move_detail::disable_if_or\
+ < RETURN_VALUE \
+ , ::boost::move_detail::is_rv<BOOST_MOVE_TEMPL_PARAM>\
+ , ::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM>\
+ , ::boost::move_detail::is_convertible<BOOST_MOVE_TEMPL_PARAM, UNLESS_CONVERTIBLE_TO>\
+ >::type\
PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u)\
{\
TYPE t(u);\
@@ -145,10 +151,11 @@
{ return FWD_FUNCTION(arg1, ::boost::move(x)); }\
\
template<class BOOST_MOVE_TEMPL_PARAM>\
- typename ::boost::move_detail::enable_if_c\
- < !::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM>::value && \
- !::boost::move_detail::is_convertible<BOOST_MOVE_TEMPL_PARAM, UNLESS_CONVERTIBLE_TO>::value \
- , RETURN_VALUE >::type\
+ typename ::boost::move_detail::disable_if_or\
+ < RETURN_VALUE \
+ , ::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM> \
+ , ::boost::move_detail::is_convertible<BOOST_MOVE_TEMPL_PARAM, UNLESS_CONVERTIBLE_TO> \
+ >::type\
PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u)\
{\
TYPE t(u);\