Gazebo Physics

API Reference

8.0.0
SpecifyData.hh File Reference
#include "gz/physics/detail/PrivateSpecifyData.hh"
#include "gz/physics/detail/SpecifyData.hh"

Go to the source code of this file.

Classes

class  ExpectData< Expected >
 ExpectData is an extension of CompositeData which indicates that the composite expects to be operating on the data types listed in its template arguments. All of the expected types will benefit from very high-speed operations when being accessed from an object of type ExpectData<Expected>. The ordinary CompositeData class needs to perform a map lookup on the data type whenever one of its functions is called, but an ExpectData<T> object does not need to perform any map lookup when performing an operation on T (e.g. .Get<T>(), .Insert<T>(), .Query<T>(), .Has<T>(), etc). More...
 
struct  FindExpected< Specification >
 This allows us to specify that we are interested in expected data while performing template metaprogramming. More...
 
struct  FindRequired< Specification >
 This allows us to specify that we are interested in required data while performing template metaprogramming. More...
 
struct  IsExpectedBy< Data, Specification >
 Provides a constexpr field named value whose value is true if and only if Data is expected by Specification. More...
 
struct  IsRequiredBy< Data, Specification >
 Provides a constexpr field named value whose value is true if and only if Data is required by Specification. More...
 
class  RequireData< Required >
 RequireData is an extension of ExpectData which indicates that the composite requires the existence of any data types that are listed in its template arguments. More...
 

Namespaces

namespace  gz
 
namespace  gz::physics
 

Functions

template<typename Specification >
constexpr std::size_t CountUpperLimitOfExpectedData ()
 This provides an upper limit on the number of expected data types in a CompositeData specification. This is an upper limit because when a data type is specified multiple times within a specficiation, it will be counted multiple times. As long as each data type is only specified once, it will provide an exact count.
 
template<typename Specification >
constexpr std::size_t CountUpperLimitOfRequiredData ()
 Same as CountUpperLimitOfExpectedData() except it will count required data instead.
 
template<typename Specification , template< typename > class SpecFinder>
constexpr std::size_t CountUpperLimitOfSpecifiedData ()
 Same as CountUpperLimitOfExpectedData() except you can specify what kind of data to count using SpecFinder. SpecFinder must accept a data specification (or void) as a template argument and provide a type called Data. See FindExpected and FindRequired below for examples.