rtree: added Allocators copy assignments for C++11, warning disabled.

[SVN r83704]
This commit is contained in:
Adam Wulkiewicz
2013-04-02 00:13:51 +00:00
parent fe26044965
commit 03ffa0f35f
6 changed files with 47 additions and 5 deletions

View File

@@ -16,6 +16,9 @@
#pragma warning (disable : 4512) // assignment operator could not be generated
#pragma warning (disable : 4127) // conditional expression is constant
// temporary?
#pragma warning (disable : 4180) // qualifier applied to function type has no meaning
#else //BOOST_MSVC
#define BOOST_GEOMETRY_INDEX_DETAIL_USE_PARAM(A)

View File

@@ -188,7 +188,8 @@ public:
, leaf_allocator_type()
{}
inline explicit allocators(Allocator const& alloc)
template <typename Alloc>
inline explicit allocators(Alloc const& alloc)
: internal_node_allocator_type(alloc)
, leaf_allocator_type(alloc)
{}
@@ -205,6 +206,15 @@ public:
return *this;
}
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
inline allocators & operator=(allocators const& a)
{
internal_node_allocator() = a.internal_node_allocator();
leaf_allocator() = a.leaf_allocator();
return *this;
}
#endif
void swap(allocators & a)
{
boost::swap(internal_node_allocator(), a.internal_node_allocator());

View File

@@ -137,7 +137,8 @@ public:
, leaf_allocator_type()
{}
inline explicit allocators(Allocator const& alloc)
template <typename Alloc>
inline explicit allocators(Alloc const& alloc)
: internal_node_allocator_type(alloc)
, leaf_allocator_type(alloc)
{}
@@ -154,6 +155,15 @@ public:
return *this;
}
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
inline allocators & operator=(allocators const& a)
{
internal_node_allocator() = a.internal_node_allocator();
leaf_allocator() = a.leaf_allocator();
return *this;
}
#endif
void swap(allocators & a)
{
boost::swap(internal_node_allocator(), a.internal_node_allocator());

View File

@@ -115,7 +115,8 @@ public:
: node_allocator_type()
{}
inline explicit allocators(Allocator const& alloc)
template <typename Alloc>
inline explicit allocators(Alloc const& alloc)
: node_allocator_type(alloc)
{}
@@ -129,6 +130,14 @@ public:
return *this;
}
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
inline allocators & operator=(allocators const& a)
{
node_allocator() = a.node_allocator();
return *this;
}
#endif
void swap(allocators & a)
{
boost::swap(node_allocator(), a.node_allocator());

View File

@@ -113,7 +113,8 @@ public:
: node_allocator_type()
{}
inline explicit allocators(Allocator const& alloc)
template <typename Alloc>
inline explicit allocators(Alloc const& alloc)
: node_allocator_type(alloc)
{}
@@ -127,6 +128,14 @@ public:
return *this;
}
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
inline allocators & operator=(allocators const& a)
{
node_allocator() = a.node_allocator();
return *this;
}
#endif
void swap(allocators & a)
{
boost::swap(node_allocator(), a.node_allocator());

View File

@@ -349,7 +349,7 @@ public:
: m_members(src.m_members.indexable_getter(),
src.m_members.equal_to(),
src.m_members.parameters(),
boost::move(allocator))
allocator)
{
if ( src.m_members.allocators() == allocator )
{
@@ -1142,6 +1142,7 @@ private:
{
private:
members_holder(members_holder const&);
members_holder & operator=(members_holder const&);
public:
template <typename IndGet, typename ValEq, typename Alloc>