/
usr
/
include
/
boost
/
container
/
detail
/
/usr/include/boost/container/detail
mkdir
upload
Name
Size
Mode
Actions
adaptive_node_pool.hpp
5569
0644
edit
dl
rm
adaptive_node_pool_impl.hpp
54088
0644
edit
dl
rm
addressof.hpp
1063
0644
edit
dl
rm
advanced_insert_int.hpp
17668
0644
edit
dl
rm
algorithm.hpp
3880
0644
edit
dl
rm
allocation_type.hpp
2017
0644
edit
dl
rm
allocator_version_traits.hpp
5632
0644
edit
dl
rm
alloc_helpers.hpp
1867
0644
edit
dl
rm
alloc_lib.h
11742
0644
edit
dl
rm
auto_link.hpp
1657
0644
edit
dl
rm
block_list.hpp
4199
0644
edit
dl
rm
block_slist.hpp
4503
0644
edit
dl
rm
compare_functors.hpp
3992
0644
edit
dl
rm
config_begin.hpp
3637
0644
edit
dl
rm
config_end.hpp
480
0644
edit
dl
rm
construct_in_place.hpp
2952
0644
edit
dl
rm
container_or_allocator_rebind.hpp
1743
0644
edit
dl
rm
container_rebind.hpp
6610
0644
edit
dl
rm
copy_move_algo.hpp
38531
0644
edit
dl
rm
destroyers.hpp
9338
0644
edit
dl
rm
dispatch_uses_allocator.hpp
19733
0644
edit
dl
rm
dlmalloc.hpp
3444
0644
edit
dl
rm
flat_tree.hpp
61663
0644
edit
dl
rm
function_detector.hpp
3558
0644
edit
dl
rm
is_container.hpp
2213
0644
edit
dl
rm
is_contiguous_container.hpp
1712
0644
edit
dl
rm
is_sorted.hpp
1465
0644
edit
dl
rm
iterator.hpp
2590
0644
edit
dl
rm
iterators.hpp
29882
0644
edit
dl
rm
iterator_to_raw_pointer.hpp
971
0644
edit
dl
rm
math_functions.hpp
3872
0644
edit
dl
rm
minimal_char_traits_header.hpp
1057
0644
edit
dl
rm
min_max.hpp
997
0644
edit
dl
rm
mpl.hpp
3834
0644
edit
dl
rm
multiallocation_chain.hpp
10317
0644
edit
dl
rm
mutex.hpp
8665
0644
edit
dl
rm
next_capacity.hpp
2140
0644
edit
dl
rm
node_alloc_holder.hpp
17651
0644
edit
dl
rm
node_pool.hpp
4808
0644
edit
dl
rm
node_pool_impl.hpp
13171
0644
edit
dl
rm
pair.hpp
21281
0644
edit
dl
rm
pair_key_mapped_of_value.hpp
1466
0644
edit
dl
rm
placement_new.hpp
914
0644
edit
dl
rm
pool_common.hpp
1606
0644
edit
dl
rm
pool_common_alloc.hpp
2730
0644
edit
dl
rm
pool_resource.hpp
7744
0644
edit
dl
rm
singleton.hpp
4465
0644
edit
dl
rm
std_fwd.hpp
1450
0644
edit
dl
rm
thread_mutex.hpp
4449
0644
edit
dl
rm
transform_iterator.hpp
5103
0644
edit
dl
rm
tree.hpp
57038
0644
edit
dl
rm
type_traits.hpp
2714
0644
edit
dl
rm
value_functors.hpp
1118
0644
edit
dl
rm
value_init.hpp
1135
0644
edit
dl
rm
variadic_templates_tools.hpp
4959
0644
edit
dl
rm
version_type.hpp
2416
0644
edit
dl
rm
workaround.hpp
4501
0644
edit
dl
rm
Edit:
/usr/include/boost/container/detail/compare_functors.hpp
(3992B)
/////////////////////////////////////////////////////////////////////////////// // // (C) Copyright Ion Gaztanaga 2014-2014. Distributed under the Boost // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // // See http://www.boost.org/libs/container for documentation. // /////////////////////////////////////////////////////////////////////////////// #ifndef BOOST_CONTAINER_DETAIL_COMPARE_FUNCTORS_HPP #define BOOST_CONTAINER_DETAIL_COMPARE_FUNCTORS_HPP #ifndef BOOST_CONFIG_HPP # include <boost/config.hpp> #endif #if defined(BOOST_HAS_PRAGMA_ONCE) # pragma once #endif #include <boost/intrusive/detail/ebo_functor_holder.hpp> namespace boost { namespace container { template<class ValueType> class equal_to_value { typedef ValueType value_type; const value_type &t_; public: explicit equal_to_value(const value_type &t) : t_(t) {} bool operator()(const value_type &t)const { return t_ == t; } }; template<class Node, class Pred, class Ret = bool> struct value_to_node_compare : Pred { typedef Pred predicate_type; typedef Node node_type; value_to_node_compare() : Pred() {} explicit value_to_node_compare(Pred pred) : Pred(pred) {} Ret operator()(const Node &a, const Node &b) const { return static_cast<const Pred&>(*this)(a.get_data(), b.get_data()); } Ret operator()(const Node &a) const { return static_cast<const Pred&>(*this)(a.get_data()); } Ret operator()(const Node &a, const Node &b) { return static_cast<Pred&>(*this)(a.get_data(), b.get_data()); } Ret operator()(const Node &a) { return static_cast<Pred&>(*this)(a.get_data()); } predicate_type & predicate() { return static_cast<predicate_type&>(*this); } const predicate_type & predicate() const { return static_cast<predicate_type&>(*this); } }; template<class KeyPred, class KeyOfValue, class Node, class Ret = bool> struct key_node_pred : public boost::intrusive::detail::ebo_functor_holder<KeyPred> { BOOST_CONTAINER_FORCEINLINE explicit key_node_pred(const KeyPred &comp) : base_t(comp) {} typedef boost::intrusive::detail::ebo_functor_holder<KeyPred> base_t; typedef KeyPred key_predicate; typedef KeyOfValue key_of_value; typedef typename KeyOfValue::type key_type; BOOST_CONTAINER_FORCEINLINE static const key_type &key_from(const Node &n) { return key_of_value()(n.get_data()); } template <class T> BOOST_CONTAINER_FORCEINLINE static const T & key_from(const T &t) { return t; } BOOST_CONTAINER_FORCEINLINE const key_predicate &key_pred() const { return static_cast<const key_predicate &>(*this); } BOOST_CONTAINER_FORCEINLINE key_predicate &key_pred() { return static_cast<key_predicate &>(*this); } BOOST_CONTAINER_FORCEINLINE Ret operator()(const key_type &key) const { return this->key_pred()(key); } template<class U> BOOST_CONTAINER_FORCEINLINE Ret operator()(const U &nonkey) const { return this->key_pred()(this->key_from(nonkey)); } BOOST_CONTAINER_FORCEINLINE bool operator()(const key_type &key1, const key_type &key2) const { return this->key_pred()(key1, key2); } template<class U> BOOST_CONTAINER_FORCEINLINE bool operator()(const key_type &key1, const U &nonkey2) const { return this->key_pred()(key1, this->key_from(nonkey2)); } template<class U> BOOST_CONTAINER_FORCEINLINE bool operator()(const U &nonkey1, const key_type &key2) const { return this->key_pred()(this->key_from(nonkey1), key2); } template<class U, class V> BOOST_CONTAINER_FORCEINLINE bool operator()(const U &nonkey1, const V &nonkey2) const { return this->key_pred()(this->key_from(nonkey1), this->key_from(nonkey2)); } }; } //namespace container { } //namespace boost { #endif //BOOST_CONTAINER_DETAIL_COMPARE_FUNCTORS_HPP
Save
cmd:
run