Go to the documentation of this file.
18 #ifndef GZ_PHYISCS_OPERATEONSPECIFIEDDATA_HH_
19 #define GZ_PHYISCS_OPERATEONSPECIFIEDDATA_HH_
22 #include <unordered_set>
51 template <
typename Specification,
52 template<
typename>
class SpecFinder,
53 template<
typename,
typename,
typename>
class Operation,
80 public:
template <
typename CompositeType>
82 Performer *_performer,
85 const bool _onlyCompile =
false);
97 private:
template <
typename Data,
typename SubSpecification,
98 typename CompositeType>
99 static void SubOperate(
100 detail::type<Data>, detail::type<SubSpecification>,
101 Performer *_performer, CompositeType &_data,
107 private:
template <
typename SubSpecification,
typename CompositeType>
108 static void SubOperate(
109 detail::type<void>, detail::type<SubSpecification>,
110 Performer *_performer, CompositeType &_data,
116 private:
template <
typename CompositeType>
117 static void SubOperate(
118 detail::type<void>, detail::type<void>,
119 Performer*, CompositeType&,
126 #include "gz/physics/detail/OperateOnSpecifiedData.hh"
static void Operate(Performer *_performer, CompositeType &_data, const DataStatusMask &_mask, const bool _onlyCompile=false)
Operate is the recommended entry point for using OperateOnSpecifiedData. This can be given a performe...
This struct encodes criteria for CompositeData::DataStatus so that Read and Write operations can be d...
Definition: gz/physics/DataStatusMask.hh:33
OperateOnSpecifiedData allows us to statically analyze whether a class (Performer) can perform an ope...
Definition: gz/physics/OperateOnSpecifiedData.hh:55