iLab Neuromorphic Robotics Toolkit  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
StateDefinitionHelpers.H File Reference

Author
Randolph Voorhies (voorhies at usc dot edu)

License

// ////////////////////////////////////////////////////////////////////////
//              The iLab Neuromorphic Robotics Toolkit (NRT)             //
// Copyright 2010-2012 by the University of Southern California (USC)    //
//                          and the iLab at USC.                         //
//                                                                       //
//                iLab - University of Southern California               //
//                Hedco Neurociences Building, Room HNB-10               //
//                    Los Angeles, Ca 90089-2520 - USA                   //
//                                                                       //
//      See http://ilab.usc.edu for information about this project.      //
// ////////////////////////////////////////////////////////////////////////
// This file is part of The iLab Neuromorphic Robotics Toolkit.          //
//                                                                       //
// The iLab Neuromorphic Robotics Toolkit is free software: you can      //
// redistribute it and/or modify it under the terms of the GNU General   //
// Public License as published by the Free Software Foundation, either   //
// version 3 of the License, or (at your option) any later version.      //
//                                                                       //
// The iLab Neuromorphic Robotics Toolkit is distributed in the hope     //
// that it will be useful, but WITHOUT ANY WARRANTY; without even the    //
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR       //
// PURPOSE.  See the GNU General Public License for more details.        //
//                                                                       //
// You should have received a copy of the GNU General Public License     //
// along with The iLab Neuromorphic Robotics Toolkit.  If not, see       //
// <http://www.gnu.org/licenses/>.                                       //
// ////////////////////////////////////////////////////////////////////////

Definition in file StateDefinitionHelpers.H.

Go to the source code of this file.

Namespaces

 nrt
 Reserved namespace for NRT core classes and functions.
 

Macros

#define STATE_FIELD_GROUP_STRUCT_NAME(r, data, elem)   BOOST_PP_CAT(NRT_STATE_FIELD_GROUP_STRUCT_,BOOST_PP_CAT(data,BOOST_PP_CAT(_,elem)))
 
#define DEF_STATE_FIELD_GROUP_STRUCT(r, data, elem)   class STATE_FIELD_GROUP_STRUCT_NAME(r, data, elem) : public nrt::StateFieldBase {};
 
#define DEF_STATE_FIELD_GROUP(r, data, elem)   typedef STATE_FIELD_GROUP_STRUCT_NAME(r, data, elem) elem;
 
#define NRT_CREATE_STATE_FIELD_GROUP(StateFieldGroupName, Fields)
 

Functions

template<class Field >
constexpr bool nrt::is_state_field ()
 
template<class Field1 , class Field2 >
constexpr bool nrt::are_state_fields ()
 
template<class Group >
constexpr bool nrt::is_state_field_group ()
 
template<class Group1 , class Group2 >
constexpr bool nrt::are_state_field_groups ()
 

Macro Definition Documentation

#define NRT_CREATE_STATE_FIELD_GROUP (   StateFieldGroupName,
  Fields 
)
Value:
BOOST_PP_SEQ_FOR_EACH(DEF_STATE_FIELD_GROUP_STRUCT,StateFieldGroupName, Fields) \
class StateFieldGroupName : public nrt::StateFieldGroupBase { \
public: \
BOOST_PP_SEQ_FOR_EACH(DEF_STATE_FIELD_GROUP, StateFieldGroupName, Fields) \
typedef boost::mpl::vector< \
BOOST_PP_SEQ_ENUM(Fields) \
> fields; \
static size_t const num_fields = boost::mpl::size<fields>::value; \
}

Definition at line 48 of file StateDefinitionHelpers.H.