18 #ifndef GZ_PHYSICS_SPECIFYDATA_HH_
19 #define GZ_PHYSICS_SPECIFYDATA_HH_
21 #include "gz/physics/detail/PrivateSpecifyData.hh"
45 template <
typename Expected>
61 public: ExpectData&
operator=(
const ExpectData &_other) =
default;
74 public:
template <
typename Data>
80 public:
template <
typename Data,
typename... Args>
86 public:
template <
typename Data,
typename... Args>
92 public:
template <
typename Data>
98 public:
template <
typename Data>
103 public:
template <
typename Data>
109 public:
template <
typename Data>
115 public:
template <
typename Data>
121 public:
template <
typename Data>
127 public:
template <
typename Data,
typename... Args>
134 public:
template <
typename Data>
140 public:
template <
typename Data>
175 template <
typename Required>
176 class RequireData<Required> :
public virtual ExpectData<Required>
191 using ExpectData<Required>::Get;
199 public:
template <
typename Data>
204 public:
template <
typename Data>
264 template <
typename... Specifications>
278 template <
typename Specification>
283 template <
typename Specification>
290 template <
typename Specification,
template<
typename>
class SpecFinder>
298 template <
typename Specification>
301 using Data =
typename Specification::ExpectedData;
318 template <
typename Specification>
321 using Data =
typename Specification::RequiredData;
336 template <
typename Data,
typename Specification>
338 bool, Specification::template Expects<Data>() > { };
343 template <
typename Data>
348 template <
typename Data,
typename Specification>
350 bool, Specification::template AlwaysRequires<Data>() > { };
355 template <
typename Data>
360 #include "gz/physics/detail/SpecifyData.hh"