Merged from trunk

[SVN r79559]
This commit is contained in:
Ion Gaztañaga
2012-07-16 09:04:33 +00:00
parent bd7e6c3fd9
commit d535f151e7
9 changed files with 40 additions and 72 deletions

View File

@@ -439,7 +439,7 @@ not constructed on the fly when auxiliary memory is needed).
[section:scoped_allocator Scoped allocators]
C++11 improves stateful allocators with the introduction of
[@http://http://en.cppreference.com/w/cpp/memory/scoped_allocator_adaptor `std::scoped_allocator_adaptor`]
[@http://en.cppreference.com/w/cpp/memory/scoped_allocator_adaptor `std::scoped_allocator_adaptor`]
class template. `scoped_allocator_adaptor` is instantiated with one outer allocator and zero or more inner
allocators.
@@ -614,17 +614,29 @@ use [*Boost.Container]? There are several reasons for that:
[section:release_notes Release Notes]
[section:release_notes_boost_1_51_00 Boost 1.51 Release]
* Fixed bugs
[@https://svn.boost.org/trac/boost/ticket/6763 #6763],
[@https://svn.boost.org/trac/boost/ticket/6803 #6803],
[@https://svn.boost.org/trac/boost/ticket/7114 #7114],
[@https://svn.boost.org/trac/boost/ticket/7103 #7103].
[@https://svn.boost.org/trac/boost/ticket/7123 #7123],
[endsect]
[section:release_notes_boost_1_50_00 Boost 1.50 Release]
* Added Scoped Allocator Model support.
* Fixed bugs
[@https://svn.boost.org/trac/boost/ticket/6533 #6533],
[@https://svn.boost.org/trac/boost/ticket/6536 #6536],
[@https://svn.boost.org/trac/boost/ticket/6566 #6566],
[@https://svn.boost.org/trac/boost/ticket/6575 #6575],
[@https://svn.boost.org/trac/boost/ticket/6606 #6606],
[@https://svn.boost.org/trac/boost/ticket/6615 #6615],
[@https://svn.boost.org/trac/boost/ticket/6533 #6533],
[@https://svn.boost.org/trac/boost/ticket/6536 #6536],
[endsect]

View File

@@ -37,3 +37,7 @@ check move if noexcept conditions in vector, deque and stable_vector
Detect always equal or unequal allocators at compiler time. operator== returns true_type or false_type
change virtual functions with pointers to avoid template instantiation for every type
Add hash for containers
Add std:: hashing support

View File

@@ -203,6 +203,9 @@
<File
RelativePath="..\..\..\..\boost\container\scoped_allocator.hpp">
</File>
<File
RelativePath="..\..\..\..\boost\container\scoped_allocator_fwd.hpp">
</File>
<File
RelativePath="..\..\..\..\boost\container\set.hpp">
</File>

View File

@@ -26,7 +26,7 @@ using namespace boost::container;
namespace boost {
namespace container {
/*
//Explicit instantiation to detect compilation errors
//flat_map
@@ -115,7 +115,7 @@ template class flat_multiset
, std::less<test::movable_and_copyable_int>
, std::allocator<test::movable_and_copyable_int>
>;
*/
}} //boost::container
@@ -627,55 +627,3 @@ int main()
}
#include <boost/container/detail/config_end.hpp>
/*
#include <boost/container/map.hpp>
#include <boost/container/flat_map.hpp>
#include <boost/container/vector.hpp>
#include <boost/move/move.hpp>
#include <iostream>
struct Request
{
Request() {};
//Move semantics...
Request(BOOST_RV_REF(Request) r) : rvals() //Move constructor
{
rvals.swap(r.rvals);
};
Request& operator=(BOOST_RV_REF(Request) r) //Move assignment
{
if (this != &r){
rvals.swap(r.rvals);
}
return *this;
};
// Values I want to be moved, not copied.
boost::container::vector<int> rvals;
private:
// Mark this class movable but not copyable
BOOST_MOVABLE_BUT_NOT_COPYABLE(Request)
};
typedef boost::container::flat_map<int, Request> Requests;
//typedef boost::container::map<int, Request> Requests2;
int
main() {
Requests req;
Requests::value_type v;
std::pair<Requests::iterator, bool> ret = req.insert( boost::move(v));
//std::cout << "Insert success for req: " << ret.second << std::endl;
//Requests2 req2;
//std::pair<Requests::iterator, bool> ret2 = req2.insert( Requests2::value_type( 7, Request() ) );
//std::cout << "Insert success for req2: " << ret2.second << std::endl;
return 0;
}
*/

View File

@@ -8,20 +8,15 @@
//
//////////////////////////////////////////////////////////////////////////////
#include <boost/container/detail/config_begin.hpp>
#include <boost/container/scoped_allocator.hpp>
#include <boost/container/scoped_allocator_fwd.hpp>
#include <cstddef>
#include <boost/static_assert.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/container/detail/function_detector.hpp>
#include <boost/container/detail/mpl.hpp>
#include <boost/move/move.hpp>
#include <boost/type_traits/integral_constant.hpp>
#include <memory>
#include <boost/container/vector.hpp>
#include <boost/container/detail/pair.hpp>
using namespace boost::container;
template<class T, unsigned int Id, bool Propagate = false>
class test_allocator
{
@@ -242,6 +237,12 @@ struct constructible_with_allocator_suffix
} //namespace boost {
#include <boost/container/scoped_allocator.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/static_assert.hpp>
#include <boost/container/vector.hpp>
#include <boost/container/detail/pair.hpp>
int main()
{
typedef test_allocator<tagged_integer<0>, 0> OuterAlloc;

View File

@@ -71,7 +71,7 @@ inline bool in_range(const boost::posix_time::ptime& xt, int secs=1)
boost::xtime xsecs(int secs)
{
boost::xtime ret;
boost::xtime_get(&ret, boost::TIME_UTC_);
boost::xtime_get(&ret, boost::TIME_UTC);
ret.sec += secs;
return ret;
}