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 *>));