5 #ifndef __pinocchio_container_aligned_vector_hpp__ 6 #define __pinocchio_container_aligned_vector_hpp__ 9 #include <Eigen/StdVector> 11 #define PINOCCHIO_ALIGNED_STD_VECTOR(Type) \ 12 ::pinocchio::container::aligned_vector<Type> 28 typedef ::std::vector<T, Eigen::aligned_allocator<T> > vector_base;
29 typedef const vector_base & const_vector_base_ref;
30 typedef vector_base & vector_base_ref;
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;
37 explicit aligned_vector(
const allocator_type & a = allocator_type()) : vector_base(a) {}
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 = value_type())
43 : vector_base(num, val) {}
44 aligned_vector(iterator start, iterator end) : vector_base(start, end) {}
46 { vector_base::operator=(x);
return *
this; }
48 operator vector_base_ref() {
return base(); }
49 operator const_vector_base_ref()
const {
return base(); }
51 vector_base & base() {
return *
static_cast<vector_base*
>(
this); }
52 const vector_base & base()
const {
return *
static_cast<const vector_base*
>(
this); }
59 return lhs.base() == rhs.base();
66 #endif // ifndef __pinocchio_container_aligned_vector_hpp__ Specialization of an std::vector with an aligned allocator. This specialization might be used when th...
Main pinocchio namespace.