container/aligned-vector.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2016-2020 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_container_aligned_vector_hpp__
6 #define __pinocchio_container_aligned_vector_hpp__
7 
8 #include <vector>
9 #include <Eigen/StdVector>
10 
11 #define PINOCCHIO_ALIGNED_STD_VECTOR(Type) \
12  ::pinocchio::container::aligned_vector<Type>
13 // std::vector<Type,Eigen::aligned_allocator<Type> >
14 
15 namespace pinocchio
16 {
17  namespace container
18  {
19 
25  template<typename T>
26  struct aligned_vector : public std::vector<T, Eigen::aligned_allocator<T> >
27  {
28  typedef ::std::vector<T, Eigen::aligned_allocator<T> > vector_base;
31 
32  typedef T value_type;
33  typedef typename vector_base::allocator_type allocator_type;
34  typedef typename vector_base::size_type size_type;
35  typedef typename vector_base::iterator iterator;
36 
38  template<typename InputIterator>
39  aligned_vector(InputIterator first, InputIterator last, const allocator_type& a = allocator_type())
40  : vector_base(first, last, a) {}
42  explicit aligned_vector(size_type num, const value_type & val)
43  : vector_base(num, val) {}
44  explicit aligned_vector(size_type num)
45  : vector_base(num) {}
46  aligned_vector(iterator start, iterator end) : vector_base(start, end) {}
48  { vector_base::operator=(x); return *this; }
49 
50  vector_base & base() { return *static_cast<vector_base*>(this); }
51  const vector_base & base() const { return *static_cast<const vector_base*>(this); }
52 
53  }; // struct aligned_vector
54 
55  template<class T>
56  bool operator==(const aligned_vector<T>& lhs, const aligned_vector<T>& rhs)
57  {
58  return lhs.base() == rhs.base();
59  }
60 
61  } // namespace container
62 
63 } // namespace pinocchio
64 
65 #endif // ifndef __pinocchio_container_aligned_vector_hpp__
pinocchio::container::aligned_vector::aligned_vector
aligned_vector(InputIterator first, InputIterator last, const allocator_type &a=allocator_type())
Definition: container/aligned-vector.hpp:39
pinocchio::container::aligned_vector::aligned_vector
aligned_vector(size_type num)
Definition: container/aligned-vector.hpp:44
pinocchio::container::aligned_vector::vector_base
::std::vector< T, Eigen::aligned_allocator< T > > vector_base
Definition: container/aligned-vector.hpp:28
pinocchio::container::aligned_vector::size_type
vector_base::size_type size_type
Definition: container/aligned-vector.hpp:34
simulation-pendulum.T
int T
Definition: simulation-pendulum.py:113
pinocchio::container::aligned_vector::base
vector_base & base()
Definition: container/aligned-vector.hpp:50
c
Vec3f c
pinocchio::container::operator==
bool operator==(const aligned_vector< T > &lhs, const aligned_vector< T > &rhs)
Definition: container/aligned-vector.hpp:56
pinocchio::container::aligned_vector::aligned_vector
aligned_vector(iterator start, iterator end)
Definition: container/aligned-vector.hpp:46
pinocchio::container::aligned_vector::const_vector_base_ref
const typedef vector_base & const_vector_base_ref
Definition: container/aligned-vector.hpp:29
pinocchio::container::aligned_vector
Specialization of an std::vector with an aligned allocator. This specialization might be used when th...
Definition: container/aligned-vector.hpp:26
x
x
pinocchio::container::aligned_vector::value_type
T value_type
Definition: container/aligned-vector.hpp:32
a
Vec3f a
pinocchio::container::aligned_vector::iterator
vector_base::iterator iterator
Definition: container/aligned-vector.hpp:35
pinocchio::container::aligned_vector::allocator_type
vector_base::allocator_type allocator_type
Definition: container/aligned-vector.hpp:33
pinocchio::container::aligned_vector::operator=
aligned_vector & operator=(const aligned_vector &x)
Definition: container/aligned-vector.hpp:47
pinocchio::container::aligned_vector::base
const vector_base & base() const
Definition: container/aligned-vector.hpp:51
pinocchio::container::aligned_vector::aligned_vector
aligned_vector(const aligned_vector &c)
Definition: container/aligned-vector.hpp:41
pinocchio::container::aligned_vector::vector_base_ref
vector_base & vector_base_ref
Definition: container/aligned-vector.hpp:30
pinocchio::container::aligned_vector::aligned_vector
aligned_vector(const allocator_type &a=allocator_type())
Definition: container/aligned-vector.hpp:37
pinocchio::container::aligned_vector::aligned_vector
aligned_vector(size_type num, const value_type &val)
Definition: container/aligned-vector.hpp:42
operator=
AABB & operator=(const AABB &other)=default
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:28


pinocchio
Author(s):
autogenerated on Tue Feb 13 2024 03:43:57