37 #ifndef OMPL_BASE_STATE_
38 #define OMPL_BASE_STATE_
40 #include <boost/concept_check.hpp>
53 State(
const State &) =
delete;
56 const State &operator=(
const State &) =
delete;
61 virtual ~State() =
default;
69 BOOST_CONCEPT_ASSERT((boost::Convertible<T *, State *>));
71 return static_cast<const T *
>(
this);
79 BOOST_CONCEPT_ASSERT((boost::Convertible<T *, State *>));
81 return static_cast<T *
>(
this);
86 class CompoundState :
public State
89 CompoundState() =
default;
91 ~CompoundState()
override =
default;
95 const T *
as(
unsigned int index)
const
98 BOOST_CONCEPT_ASSERT((boost::Convertible<T *, State *>));
100 return static_cast<const T *
>(
components[index]);
105 T *
as(
const unsigned int index)
108 BOOST_CONCEPT_ASSERT((boost::Convertible<T *, State *>));