]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/bimap/include/boost/bimap/container_adaptor/set_adaptor.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / bimap / include / boost / bimap / container_adaptor / set_adaptor.hpp
CommitLineData
7c673cae
FG
1// Boost.Bimap
2//
3// Copyright (c) 2006-2007 Matias Capeletto
4//
5// Distributed under the Boost Software License, Version 1.0.
6// (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8
9/// \file container_adaptor/set_adaptor.hpp
10/// \brief Container adaptor to easily build a std::set signature compatible container.
11
12#ifndef BOOST_BIMAP_CONTAINER_ADAPTOR_SET_ADAPTOR_HPP
13#define BOOST_BIMAP_CONTAINER_ADAPTOR_SET_ADAPTOR_HPP
14
15#if defined(_MSC_VER)
16#pragma once
17#endif
18
19#include <boost/config.hpp>
20
21#include <boost/bimap/container_adaptor/ordered_associative_container_adaptor.hpp>
22#include <boost/mpl/vector.hpp>
23#include <boost/mpl/aux_/na.hpp>
24
25namespace boost {
26namespace bimaps {
27namespace container_adaptor {
28
29/// \brief Container adaptor to easily build a std::set signature compatible container.
30
31template
32<
33 class Base,
34
35 class Iterator,
36 class ConstIterator,
37 class ReverseIterator,
38 class ConstReverseIterator,
39
40 class IteratorToBaseConverter = ::boost::mpl::na,
41 class IteratorFromBaseConverter = ::boost::mpl::na,
42 class ReverseIteratorFromBaseConverter = ::boost::mpl::na,
43 class ValueToBaseConverter = ::boost::mpl::na,
44 class ValueFromBaseConverter = ::boost::mpl::na,
45 class KeyToBaseConverter = ::boost::mpl::na,
46
47 class FunctorsFromDerivedClasses = mpl::vector<>
48>
49class set_adaptor :
50
51 public ::boost::bimaps::container_adaptor::
52 ordered_associative_container_adaptor
53 <
54 Base,
55 Iterator, ConstIterator, ReverseIterator, ConstReverseIterator,
56 BOOST_DEDUCED_TYPENAME Iterator::value_type,
57 IteratorToBaseConverter, IteratorFromBaseConverter,
58 ReverseIteratorFromBaseConverter,
59 ValueToBaseConverter, ValueFromBaseConverter,
60 KeyToBaseConverter,
61 FunctorsFromDerivedClasses
62 >
63{
64
65 typedef ::boost::bimaps::container_adaptor::
66 ordered_associative_container_adaptor
67 <
68 Base,
69 Iterator, ConstIterator, ReverseIterator, ConstReverseIterator,
70 BOOST_DEDUCED_TYPENAME Iterator::value_type,
71 IteratorToBaseConverter, IteratorFromBaseConverter,
72 ReverseIteratorFromBaseConverter,
73 ValueToBaseConverter, ValueFromBaseConverter,
74 KeyToBaseConverter,
75 FunctorsFromDerivedClasses
76
77 > base_;
78
79 // Access -----------------------------------------------------------------
80
81 public:
82
83 explicit set_adaptor(Base & c) :
84 base_(c) {}
85
86 protected:
87
88 typedef set_adaptor set_adaptor_;
89
90};
91
92
93} // namespace container_adaptor
94} // namespace bimaps
95} // namespace boost
96
97
98#endif // BOOST_BIMAP_CONTAINER_ADAPTOR_SET_ADAPTOR_HPP
99
100