fusion.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2023 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_multibody_visitor_fusion_hpp__
6 #define __pinocchio_multibody_visitor_fusion_hpp__
7 
8 #define BOOST_FUSION_INVOKE_MAX_ARITY 12
9 
10 #include <boost/variant/static_visitor.hpp>
11 #include <boost/fusion/include/invoke.hpp>
12 #include <boost/fusion/container/generation/make_vector.hpp>
13 
14 namespace pinocchio
15 {
16  namespace fusion
17  {
18 
19  namespace bf = boost::fusion;
20  typedef boost::blank NoArg;
21 
22  } // namespace fusion
23 } // namespace pinocchio
24 
25 namespace boost
26 {
27  namespace fusion
28  {
29 
31  template<typename T, typename V>
32  typename result_of::push_front<V const, T>::type append(T const & t, V const & v)
33  {
34  return push_front(v, t);
35  }
36 
38  template<typename T1, typename T2, typename V>
40  type
41  append(T1 const & t1, T2 const & t2, V const & v)
42  {
43  return push_front(push_front(v, t2), t1);
44  }
45 
47  template<typename T1, typename T2, typename T3, typename V>
48  typename result_of::push_front<
50  type const,
51  T1>::type
52  append(T1 const & t1, T2 const & t2, T3 const & t3, V const & v)
53  {
54  return push_front(push_front(push_front(v, t3), t2), t1);
55  }
56 
58  template<typename T1, typename T2, typename T3, typename T4, typename V>
59  typename result_of::push_front<
60  typename result_of::push_front<
61  typename result_of::
63  T2>::type const,
64  T1>::type
65  append(T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, V const & v)
66  {
67  return push_front(push_front(push_front(push_front(v, t4), t3), t2), t1);
68  }
69 
71  template<typename T1, typename T2, typename T3, typename T4, typename T5, typename V>
72  typename result_of::push_front<
73  typename result_of::push_front<
74  typename result_of::push_front<
75  typename result_of::
77  T3>::type const,
78  T2>::type const,
79  T1>::type
80  append(T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5, V const & v)
81  {
82  return push_front(push_front(push_front(push_front(push_front(v, t5), t4), t3), t2), t1);
83  }
84 
85  } // namespace fusion
86 } // namespace boost
87 
88 #endif // ifndef __pinocchio_multibody_visitor_fusion_hpp__
simulation-contact-dynamics.T
int T
Definition: simulation-contact-dynamics.py:94
boost
simulation-pendulum.type
type
Definition: simulation-pendulum.py:18
autodiff-rnea.v
v
Definition: autodiff-rnea.py:15
boost::fusion
Definition: fusion.hpp:27
boost::fusion::append
result_of::push_front< V const, T >::type append(T const &t, V const &v)
Append the element T at the front of boost fusion vector V.
Definition: fusion.hpp:32
pinocchio::fusion::NoArg
boost::blank NoArg
Definition: fusion.hpp:20
t
Transform3f t
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27


pinocchio
Author(s):
autogenerated on Sat Jun 1 2024 02:40:35