1 #ifndef SILICIUM_VECTOR_HPP
2 #define SILICIUM_VECTOR_HPP
5 #include <boost/container/vector.hpp>
9 template <
class Element,
class Allocator = std::allocator<Element>>
14 typedef typename boost::container::vector<Element, Allocator>::iterator
iterator;
15 typedef typename boost::container::vector<Element, Allocator>::const_iterator
const_iterator;
22 : m_impl(
std::
move(other.m_impl))
32 vector(std::initializer_list<Element> elements)
34 : m_impl(elements.
begin(), elements.
end())
46 bool empty() const BOOST_NOEXCEPT
48 return m_impl.empty();
51 size_type
size() const BOOST_NOEXCEPT
56 element_type *
data() BOOST_NOEXCEPT
61 element_type
const *
data() const BOOST_NOEXCEPT
68 return m_impl.begin();
71 const_iterator
begin() const BOOST_NOEXCEPT
73 return m_impl.begin();
76 iterator
end() BOOST_NOEXCEPT
81 const_iterator
end() const BOOST_NOEXCEPT
86 template <
class ...Args>
89 m_impl.emplace_back(std::forward<Args>(args)...);
94 boost::container::vector<Element, Allocator> m_impl;
96 explicit vector(boost::container::vector<Element, Allocator> impl)
102 template <
class Element,
class Allocator>
std::remove_reference< T >::type && move(T &&ref)
Definition: move.hpp:10
boost::container::vector< Element, Allocator >::const_iterator const_iterator
Definition: vector.hpp:15
iterator begin() BOOST_NOEXCEPT
Definition: vector.hpp:66
vector() BOOST_NOEXCEPT
Definition: vector.hpp:17
Definition: absolute_path.hpp:352
Definition: absolute_path.hpp:19
#define SILICIUM_DISABLE_COPY(struct_name)
Definition: config.hpp:114
const_iterator begin() const BOOST_NOEXCEPT
Definition: vector.hpp:71
void emplace_back(Args &&...args)
Definition: vector.hpp:87
element_type const * data() const BOOST_NOEXCEPT
Definition: vector.hpp:61
Definition: vector.hpp:10
iterator end() BOOST_NOEXCEPT
Definition: vector.hpp:76
const_iterator end() const BOOST_NOEXCEPT
Definition: vector.hpp:81
Element element_type
Definition: vector.hpp:12
SILICIUM_USE_RESULT bool operator==(absolute_path const &left, ComparableToPath const &right)
Definition: absolute_path.hpp:169
boost::container::vector< Element, Allocator >::iterator iterator
Definition: vector.hpp:14
bool empty() const BOOST_NOEXCEPT
Definition: vector.hpp:46
vector(std::initializer_list< Element > elements)
Definition: vector.hpp:32
size_type size() const BOOST_NOEXCEPT
Definition: vector.hpp:51
element_type * data() BOOST_NOEXCEPT
Definition: vector.hpp:56
std::size_t size_type
Definition: vector.hpp:13
vector & operator=(vector &&other) BOOST_NOEXCEPT
Definition: vector.hpp:26
vector(vector &&other) BOOST_NOEXCEPT
Definition: vector.hpp:21
vector copy() const
Definition: vector.hpp:41