mirror of
https://github.com/boostorg/unordered.git
synced 2025-07-30 03:17:15 +02:00
Better configuration for boost.unordered.
[SVN r53127]
This commit is contained in:
@ -19,4 +19,12 @@
|
|||||||
# define BOOST_UNORDERED_NO_HAS_MOVE_ASSIGN
|
# define BOOST_UNORDERED_NO_HAS_MOVE_ASSIGN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
||||||
|
# if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
|
// STLport doesn't have std::forward.
|
||||||
|
# else
|
||||||
|
# define BOOST_UNORDERED_STD_FORWARD
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
|
#include <boost/unordered/detail/config.hpp>
|
||||||
|
|
||||||
#if !defined(BOOST_UNORDERED_EMPLACE_LIMIT)
|
#if !defined(BOOST_UNORDERED_EMPLACE_LIMIT)
|
||||||
#define BOOST_UNORDERED_EMPLACE_LIMIT 5
|
#define BOOST_UNORDERED_EMPLACE_LIMIT 5
|
||||||
@ -45,7 +46,7 @@
|
|||||||
|
|
||||||
#include <boost/mpl/aux_/config/eti.hpp>
|
#include <boost/mpl/aux_/config/eti.hpp>
|
||||||
|
|
||||||
#if !(defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL))
|
#if !(defined(BOOST_UNORDERED_STD_FORWARD))
|
||||||
|
|
||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
@ -198,7 +198,7 @@ namespace boost {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void construct(Args&&... args)
|
void construct(Args&&... args)
|
||||||
{
|
{
|
||||||
@ -1602,7 +1602,7 @@ namespace boost {
|
|||||||
|
|
||||||
// For maps if there is more than one argument, the key can be the first argument.
|
// For maps if there is more than one argument, the key can be the first argument.
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
template <typename Arg, typename Arg1, typename... Args>
|
template <typename Arg, typename Arg1, typename... Args>
|
||||||
static BOOST_DEDUCED_TYPENAME
|
static BOOST_DEDUCED_TYPENAME
|
||||||
boost::mpl::if_<
|
boost::mpl::if_<
|
||||||
@ -1733,7 +1733,7 @@ namespace boost {
|
|||||||
|
|
||||||
#if BOOST_UNORDERED_EQUIVALENT_KEYS
|
#if BOOST_UNORDERED_EQUIVALENT_KEYS
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
|
|
||||||
// Emplace (equivalent key containers)
|
// Emplace (equivalent key containers)
|
||||||
// (I'm using an overloaded emplace for both 'insert' and 'emplace')
|
// (I'm using an overloaded emplace for both 'insert' and 'emplace')
|
||||||
@ -1943,7 +1943,7 @@ namespace boost {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
|
|
||||||
// Emplace (unique keys)
|
// Emplace (unique keys)
|
||||||
// (I'm using an overloaded emplace for both 'insert' and 'emplace')
|
// (I'm using an overloaded emplace for both 'insert' and 'emplace')
|
||||||
|
@ -21,6 +21,10 @@
|
|||||||
#include <boost/unordered/detail/move.hpp>
|
#include <boost/unordered/detail/move.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
|
||||||
|
#include <initializer_list>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(BOOST_MSVC)
|
#if defined(BOOST_MSVC)
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#if BOOST_MSVC >= 1400
|
#if BOOST_MSVC >= 1400
|
||||||
@ -135,7 +139,7 @@ namespace boost
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(BOOST_NO_INITIALIZER_LISTS)
|
#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
|
||||||
unordered_map(std::initializer_list<value_type> list,
|
unordered_map(std::initializer_list<value_type> list,
|
||||||
size_type n = boost::unordered_detail::default_initial_bucket_count,
|
size_type n = boost::unordered_detail::default_initial_bucket_count,
|
||||||
const hasher &hf = hasher(),
|
const hasher &hf = hasher(),
|
||||||
@ -219,7 +223,7 @@ namespace boost
|
|||||||
|
|
||||||
// modifiers
|
// modifiers
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
template <class... Args>
|
template <class... Args>
|
||||||
std::pair<iterator, bool> emplace(Args&&... args)
|
std::pair<iterator, bool> emplace(Args&&... args)
|
||||||
{
|
{
|
||||||
@ -585,7 +589,7 @@ namespace boost
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(BOOST_NO_INITIALIZER_LISTS)
|
#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
|
||||||
unordered_multimap(std::initializer_list<value_type> list,
|
unordered_multimap(std::initializer_list<value_type> list,
|
||||||
size_type n = boost::unordered_detail::default_initial_bucket_count,
|
size_type n = boost::unordered_detail::default_initial_bucket_count,
|
||||||
const hasher &hf = hasher(),
|
const hasher &hf = hasher(),
|
||||||
@ -670,7 +674,7 @@ namespace boost
|
|||||||
|
|
||||||
// modifiers
|
// modifiers
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
template <class... Args>
|
template <class... Args>
|
||||||
iterator emplace(Args&&... args)
|
iterator emplace(Args&&... args)
|
||||||
{
|
{
|
||||||
|
@ -21,6 +21,10 @@
|
|||||||
#include <boost/unordered/detail/move.hpp>
|
#include <boost/unordered/detail/move.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
|
||||||
|
#include <initializer_list>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(BOOST_MSVC)
|
#if defined(BOOST_MSVC)
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#if BOOST_MSVC >= 1400
|
#if BOOST_MSVC >= 1400
|
||||||
@ -133,7 +137,7 @@ namespace boost
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(BOOST_NO_INITIALIZER_LISTS)
|
#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
|
||||||
unordered_set(std::initializer_list<value_type> list,
|
unordered_set(std::initializer_list<value_type> list,
|
||||||
size_type n = boost::unordered_detail::default_initial_bucket_count,
|
size_type n = boost::unordered_detail::default_initial_bucket_count,
|
||||||
const hasher &hf = hasher(),
|
const hasher &hf = hasher(),
|
||||||
@ -217,7 +221,7 @@ namespace boost
|
|||||||
|
|
||||||
// modifiers
|
// modifiers
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
template <class... Args>
|
template <class... Args>
|
||||||
std::pair<iterator, bool> emplace(Args&&... args)
|
std::pair<iterator, bool> emplace(Args&&... args)
|
||||||
{
|
{
|
||||||
@ -555,7 +559,7 @@ namespace boost
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(BOOST_NO_INITIALIZER_LISTS)
|
#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
|
||||||
unordered_multiset(std::initializer_list<value_type> list,
|
unordered_multiset(std::initializer_list<value_type> list,
|
||||||
size_type n = boost::unordered_detail::default_initial_bucket_count,
|
size_type n = boost::unordered_detail::default_initial_bucket_count,
|
||||||
const hasher &hf = hasher(),
|
const hasher &hf = hasher(),
|
||||||
@ -639,7 +643,7 @@ namespace boost
|
|||||||
|
|
||||||
// modifiers
|
// modifiers
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
template <class... Args>
|
template <class... Args>
|
||||||
iterator emplace(Args&&... args)
|
iterator emplace(Args&&... args)
|
||||||
{
|
{
|
||||||
|
@ -347,7 +347,7 @@ namespace exception
|
|||||||
detail::tracker.track_construct((void*) p, sizeof(T), tag_);
|
detail::tracker.track_construct((void*) p, sizeof(T), tag_);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
template<class... Args> void construct(pointer p, Args&&... args) {
|
template<class... Args> void construct(pointer p, Args&&... args) {
|
||||||
UNORDERED_SCOPE(allocator::construct(pointer, Args&&...)) {
|
UNORDERED_SCOPE(allocator::construct(pointer, Args&&...)) {
|
||||||
UNORDERED_EPOINT("Mock allocator construct function.");
|
UNORDERED_EPOINT("Mock allocator construct function.");
|
||||||
|
@ -229,7 +229,7 @@ namespace minimal
|
|||||||
|
|
||||||
void construct(pointer p, T const& t) { new((void*)p.ptr_) T(t); }
|
void construct(pointer p, T const& t) { new((void*)p.ptr_) T(t); }
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
template<class... Args> void construct(pointer p, Args&&... args) {
|
template<class... Args> void construct(pointer p, Args&&... args) {
|
||||||
new((void*)p.ptr_) T(std::forward<Args>(args)...);
|
new((void*)p.ptr_) T(std::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
|
@ -218,7 +218,7 @@ namespace test
|
|||||||
new(p) T(t);
|
new(p) T(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
#if defined(BOOST_UNORDERED_STD_FORWARD)
|
||||||
template<class... Args> void construct(pointer p, Args&&... args) {
|
template<class... Args> void construct(pointer p, Args&&... args) {
|
||||||
detail::tracker.track_construct((void*) p, sizeof(T), tag_);
|
detail::tracker.track_construct((void*) p, sizeof(T), tag_);
|
||||||
new(p) T(std::forward<Args>(args)...);
|
new(p) T(std::forward<Args>(args)...);
|
||||||
|
Reference in New Issue
Block a user