Go to the documentation of this file.
26 #include <type_traits>
28 #include "../../Descriptor.h"
36 template <
class RecursiveVisitorImplementation>
39 typename RecursiveVisitorImplementation::Input& t)
41 auto descriptor =
v.getDescriptor(t);
46 v.visitListOnEnter(t);
47 auto acceptedType =
v.getListAcceptedType(t);
54 v.visitPairOnEnter(t);
55 auto acceptedTypes =
v.getPairAcceptedTypes(t);
63 v.visitTupleOnEnter(t);
65 for (
const auto& acceptedType :
v.getTupleAcceptedTypes(t))
70 v.visitTupleOnExit(t);
75 v.visitDictOnEnter(t);
76 auto acceptedType =
v.getDictAcceptedType(t);
83 v.visitObjectOnEnter(t);
84 for (
const auto& [key, acceptedType] :
v.getObjectElements(t))
88 v.visitObjectOnExit(t);
92 return v.visitNDArray(t);
94 return v.visitMatrix(t);
96 return v.visitImage(t);
98 return v.visitPointCloud(t);
100 return v.visitQuaternion(t);
102 return v.visitInt(t);
104 return v.visitLong(t);
106 return v.visitFloat(t);
108 return v.visitDouble(t);
110 return v.visitString(t);
112 return v.visitBool(t);
114 return v.visitAnyObject(t);
116 return v.visitIntEnum(t);
118 return v.visitUnknown(t);
std::map< std::string, InputNonConst > ObjectElements
virtual void visitObjectOnEnter(Input &)
virtual void visitNDArray(Input &)
A base class for aron exceptions.
virtual void visitDouble(Input &)
virtual TupleElements getTupleAcceptedTypes(Input &)=0
virtual PairElements getPairAcceptedTypes(Input &)=0
virtual void visitTupleOnExit(Input &)
virtual void visitTupleOnEnter(Input &)
virtual void visitPairOnExit(Input &)
virtual void visitUnknown(Input &)
std::vector< InputNonConst > TupleElements
std::pair< InputNonConst, InputNonConst > PairElements
virtual ObjectElements getObjectAcceptedTypes(Input &)=0
virtual InputNonConst getDictAcceptedType(Input &)=0
typename VisitorBase< const type::VariantPtr >::Input Input
virtual void visitDictOnExit(Input &)
virtual void visitPointCloud(Input &)
typename std::remove_const< Input >::type InputNonConst
virtual void visitListOnEnter(Input &)
virtual void visitPairOnEnter(Input &)
virtual void visitImage(Input &)
virtual void visitObjectOnExit(Input &)
virtual ~RecursiveVisitor()=default
virtual void visitBool(Input &)
virtual void visitIntEnum(Input &)
virtual void visitAnyObject(Input &)
A convenience header to include all aron files (full include, not forward declared)
virtual void visitFloat(Input &)
virtual void visitLong(Input &)
void visitRecursive(RecursiveVisitorImplementation &v, typename RecursiveVisitorImplementation::Input &t)
The visitRecursive function.
virtual InputNonConst getListAcceptedType(Input &)=0
virtual void visitMatrix(Input &)
double v(double t, double v0, double a0, double j)
virtual void visitQuaternion(Input &)
virtual void visitListOnExit(Input &)
The RecursiveVisitor struct.
virtual void visitInt(Input &)
virtual void visitDictOnEnter(Input &)
virtual void visitString(Input &)