Add copy constructors and assignment operators when using rvalue references. Refs #5119.

[SVN r68445]
This commit is contained in:
Daniel James
2011-01-25 20:13:43 +00:00
parent 4d57147c3d
commit a33949a0a5
2 changed files with 44 additions and 0 deletions

View File

@ -160,6 +160,11 @@ namespace boost
~unordered_map() {}
#if !defined(BOOST_NO_RVALUE_REFERENCES)
unordered_map(unordered_map const& other)
: table_(other.table_)
{
}
unordered_map(unordered_map&& other)
: table_(other.table_, boost::unordered_detail::move_tag())
{
@ -170,6 +175,12 @@ namespace boost
{
}
unordered_map& operator=(unordered_map const& x)
{
table_ = x.table_;
return *this;
}
unordered_map& operator=(unordered_map&& x)
{
table_.move(x.table_);
@ -705,6 +716,11 @@ namespace boost
~unordered_multimap() {}
#if !defined(BOOST_NO_RVALUE_REFERENCES)
unordered_multimap(unordered_multimap const& other)
: table_(other.table_)
{
}
unordered_multimap(unordered_multimap&& other)
: table_(other.table_, boost::unordered_detail::move_tag())
{
@ -715,6 +731,12 @@ namespace boost
{
}
unordered_multimap& operator=(unordered_multimap const& x)
{
table_ = x.table_;
return *this;
}
unordered_multimap& operator=(unordered_multimap&& x)
{
table_.move(x.table_);

View File

@ -154,6 +154,11 @@ namespace boost
~unordered_set() {}
#if !defined(BOOST_NO_RVALUE_REFERENCES)
unordered_set(unordered_set const& other)
: table_(other.table_)
{
}
unordered_set(unordered_set&& other)
: table_(other.table_, boost::unordered_detail::move_tag())
{
@ -164,6 +169,12 @@ namespace boost
{
}
unordered_set& operator=(unordered_set const& x)
{
table_ = x.table_;
return *this;
}
unordered_set& operator=(unordered_set&& x)
{
table_.move(x.table_);
@ -651,6 +662,11 @@ namespace boost
~unordered_multiset() {}
#if !defined(BOOST_NO_RVALUE_REFERENCES)
unordered_multiset(unordered_multiset const& other)
: table_(other.table_)
{
}
unordered_multiset(unordered_multiset&& other)
: table_(other.table_, boost::unordered_detail::move_tag())
{
@ -661,6 +677,12 @@ namespace boost
{
}
unordered_multiset& operator=(unordered_multiset const& x)
{
table_ = x.table_;
return *this;
}
unordered_multiset& operator=(unordered_multiset&& x)
{
table_.move(x.table_);