diff options
Diffstat (limited to 'boost/icl/split_interval_set.hpp')
-rw-r--r-- | boost/icl/split_interval_set.hpp | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/boost/icl/split_interval_set.hpp b/boost/icl/split_interval_set.hpp index 452a521fa4..ca0d0222e7 100644 --- a/boost/icl/split_interval_set.hpp +++ b/boost/icl/split_interval_set.hpp @@ -104,12 +104,6 @@ public: /// Constructor for a single interval explicit split_interval_set(const domain_type& itv): base_type() { this->add(itv); } - /// Assignment operator - template<class SubType> - split_interval_set& operator = - (const interval_base_set<SubType,DomainT,Compare,Interval,Alloc>& src) - { this->assign(src); return *this; } - /// Assignment from a base interval_set. template<class SubType> void assign(const interval_base_set<SubType,DomainT,Compare,Interval,Alloc>& src) @@ -118,7 +112,16 @@ public: this->_set.insert(src.begin(), src.end()); } -# ifndef BOOST_NO_RVALUE_REFERENCES + /// Assignment operator for base type + template<class SubType> + split_interval_set& operator = + (const interval_base_set<SubType,DomainT,Compare,Interval,Alloc>& src) + { + this->assign(src); + return *this; + } + +# ifndef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES //========================================================================== //= Move semantics //========================================================================== @@ -129,14 +132,22 @@ public: {} /// Move assignment operator - split_interval_set& operator = (split_interval_set&& src) + split_interval_set& operator = (split_interval_set src) { base_type::operator=(boost::move(src)); return *this; } //========================================================================== -# endif // BOOST_NO_RVALUE_REFERENCES +# else + + /// Assignment operator + split_interval_set& operator = (const split_interval_set& src) + { + base_type::operator=(src); + return *this; + } +# endif // BOOST_ICL_NO_CXX11_RVALUE_REFERENCES private: // Private functions that shall be accessible by the baseclass: |