#include <ariles2/adapters/eigen.h>
{
class ArilesBaseClass
{
#define ARILES2_ENTRIES(v) \
ARILES2_TYPED_ENTRY(v, real_member, double) \
ARILES2_TYPED_ENTRY_(v, integer_member, int)
#include ARILES2_INITIALIZE
public:
{
real_member = 0.0;
integer_member_ = 12;
}
};
class NonArilesBaseClass
{
public:
};
class MyClass : public ArilesBaseClass,
public NonArilesBaseClass
{
#define ARILES2_ENTRIES(v) \
ARILES2_PARENT(v, ArilesBaseClass) \
ARILES2_ENTRY_(v, eigen_vector)
#include ARILES2_INITIALIZE
public:
{
arilesVisitParents(visitor, param);
real_member = 100.0;
}
};
{
#define ARILES2_ENTRIES(v) \
ARILES2_TYPED_ENTRY_(v, my_class_vector, std::vector<MyClass>) \
ARILES2_TYPED_ENTRY_(v, ptr, std::shared_ptr<MyClass>)
#include ARILES2_INITIALIZE
};
}
#include <iostream>
{
try
{
my_container_class.my_class_vector_.size();
my_container_class.my_class_vector_.emplace_back();
ariles2::apply<ariles2::Defaults>(my_container_class.my_class_vector_[0]);
{
ariles2::apply<ariles2::yaml_cpp::Writer>("config.yaml", my_container_class);
ariles2::apply<ariles2::yaml_cpp::Reader>("config.yaml", my_container_class);
ariles2::apply<ariles2::yaml_cpp::Writer>(std::cout, my_container_class);
ariles2::apply<ariles2::yaml_cpp::Writer>(std::cout, my_container_class, parameters);
}
{
ros::NodeHandle nh;
ariles2::apply<ariles2::rosparam::Writer>(nh, my_container_class);
ariles2::apply<ariles2::rosparam::Reader>(nh, my_container_class);
ariles2::apply<ariles2::rosparam::Writer>(nh, my_container_class, "/some_namespace/");
ariles2::apply<ariles2::rosparam::Reader>(nh, my_container_class, "/some_namespace/");
}
{
ariles2::apply<ariles2::octave::Writer>("debug.m", my_container_class);
}
}
catch (const std::exception &e)
{
std::cout << e.what() << std::endl;
return (EXIT_FAILURE);
}
return (EXIT_SUCCESS);
}
void arilesVisit(const ariles2::Defaults &, const ariles2::Defaults::Parameters &)
virtual ~ArilesBaseClass()=default
void arilesVisit(const ariles2::Defaults &visitor, const ariles2::Defaults::Parameters ¶m)
~MyClass() override=default
Eigen::Vector3d eigen_vector_
t_Visitor::ReturnType apply(t_Visitor &visitor, t_Ariles &ariles_class, t_Subtree &&subtree, const typename t_Visitor::Parameters ¶m)