From e6fd299292f724243676324aa6cfbe3fba7ff5b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Tue, 10 Apr 2012 20:16:14 +0000 Subject: [PATCH] Added SFINAE to constructors [SVN r77896] --- include/boost/container/detail/pair.hpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/include/boost/container/detail/pair.hpp b/include/boost/container/detail/pair.hpp index 3c3ae38..af32d6a 100644 --- a/include/boost/container/detail/pair.hpp +++ b/include/boost/container/detail/pair.hpp @@ -20,6 +20,8 @@ #include "config_begin.hpp" #include +#include +#include #include #include @@ -211,7 +213,11 @@ struct pair } template - pair& operator=(const pair&p) + typename ::boost::container::container_detail::enable_if_c + < !(::boost::container::container_detail::is_same::value && + ::boost::container::container_detail::is_same::value) + , pair &>::type + operator=(const pair&p) { first = p.first; second = p.second; @@ -219,7 +225,11 @@ struct pair } template - pair& operator=(BOOST_RV_REF_BEG pair BOOST_RV_REF_END p) + typename ::boost::container::container_detail::enable_if_c + < !(::boost::container::container_detail::is_same::value && + ::boost::container::container_detail::is_same::value) + , pair &>::type + operator=(BOOST_RV_REF_BEG pair BOOST_RV_REF_END p) { first = ::boost::move(p.first); second = ::boost::move(p.second);