68 template <
typename T,
typename =
void>
73 struct if_subtraction<T, std::void_t<decltype(std::declval<T>() - std::declval<T>())>> : std::true_type {};
78 template <
typename T,
typename =
void>
83 struct if_multiplication<T, std::void_t<decltype(std::declval<T>()* std::declval<T>())>> : std::true_type {};
88 template <
typename T,
typename =
void>
93 struct if_division<T, std::void_t<decltype(std::declval<T>() / std::declval<T>())>> : std::true_type {};
98 template <
typename T,
typename =
void>
102 template <
typename T>
103 struct if_remainder<T, std::void_t<decltype(std::declval<T>() % std::declval<T>())>> : std::true_type {};
147 template<
typename U = T>
148 typename std::enable_if<std::is_arithmetic<U>::value, U>::type
155 template<
typename U = T>
156 typename std::enable_if<if_subtraction<U>::value, U>::type
162 template<
typename U = T>
163 typename std::enable_if<if_multiplication<U>::value, U>::type
169 template<
typename U = T>
170 typename std::enable_if<if_division<U>::value, U>::type
176 template<
typename U = T>
177 typename std::enable_if<if_remainder<U>::value, U>::type
222 template<
typename U = T>
223 typename std::enable_if<std::is_arithmetic<U>::value,
void>::type
229 template<
typename U = T>
230 typename std::enable_if<if_subtraction<U>::value,
void>::type
236 template<
typename U = T>
237 typename std::enable_if<if_multiplication<U>::value,
void>::type
243 template<
typename U = T>
244 typename std::enable_if<if_division<U>::value,
void>::type
250 template<
typename U = T>
251 typename std::enable_if<if_remainder<U>::value,
void>::type
275#pragma region 要素アクセス子
297 template<
typename U = T>
298 typename std::enable_if<std::is_arithmetic<U>::value, U>::type
305 template<
typename U = T>
306 typename std::enable_if<if_subtraction<U>::value, U>::type
312 template<
typename U = T>
313 typename std::enable_if<if_multiplication<U>::value, U>::type
319 template<
typename U = T>
320 typename std::enable_if<if_division<U>::value, U>::type
326 template<
typename U = T>
327 typename std::enable_if<if_remainder<U>::value, U>::type
345 template<
typename U = T>
346 typename std::enable_if<std::is_arithmetic<U>::value,
void>::type
352 template<
typename U = T>
353 typename std::enable_if<if_subtraction<U>::value,
void>::type
359 template<
typename U = T>
360 typename std::enable_if<if_multiplication<U>::value,
void>::type
366 template<
typename U = T>
367 typename std::enable_if<if_division<U>::value,
void>::type
373 template<
typename U = T>
374 typename std::enable_if<if_remainder<U>::value,
void>::type
419 template<
typename U = T>
420 typename std::enable_if<std::is_arithmetic<U>::value,
void>::type
426 template<
typename U = T>
427 typename std::enable_if<if_subtraction<U>::value,
void>::type
433 template<
typename U = T>
434 typename std::enable_if<if_multiplication<U>::value,
void>::type
440 template<
typename U = T>
441 typename std::enable_if<if_division<U>::value,
void>::type
447 template<
typename U = T>
448 typename std::enable_if<if_remainder<U>::value,
void>::type
477#pragma region 要素アクセス子
499 template<
typename U = T>
500 typename std::enable_if<std::is_arithmetic<U>::value, U>::type
507 template<
typename U = T>
508 typename std::enable_if<if_subtraction<U>::value, U>::type
514 template<
typename U = T>
515 typename std::enable_if<if_multiplication<U>::value, U>::type
521 template<
typename U = T>
522 typename std::enable_if<if_division<U>::value, U>::type
528 template<
typename U = T>
529 typename std::enable_if<if_remainder<U>::value, U>::type
547 template<
typename U = T>
548 typename std::enable_if<std::is_arithmetic<U>::value,
void>::type
554 template<
typename U = T>
555 typename std::enable_if<if_subtraction<U>::value,
void>::type
561 template<
typename U = T>
562 typename std::enable_if<if_multiplication<U>::value,
void>::type
568 template<
typename U = T>
569 typename std::enable_if<if_division<U>::value,
void>::type
575 template<
typename U = T>
576 typename std::enable_if<if_remainder<U>::value,
void>::type
std::enable_if< std::is_arithmetic< U >::value, U >::type operator+(U _plus) const
Definition Accessor.hpp:299
std::enable_if< if_remainder< U >::value, U >::type operator%(U _index) const
Definition Accessor.hpp:328
std::enable_if< if_subtraction< U >::value, U >::type operator-(U _index) const
Definition Accessor.hpp:307
std::enable_if< if_multiplication< U >::value, U >::type operator*(U _index) const
Definition Accessor.hpp:314
std::enable_if< if_remainder< U >::value, void >::type operator%=(U _index)
Definition Accessor.hpp:375
void operator=(T _set)
Definition Accessor.hpp:337
Accessor(T *_variable)
Definition Accessor.hpp:273
T * operator->()
Definition Accessor.hpp:276
ReadOnly< T > readOnly
Definition Accessor.hpp:269
std::enable_if< if_division< U >::value, U >::type operator/(U _index) const
Definition Accessor.hpp:321
std::enable_if< if_division< U >::value, void >::type operator/=(U _index)
Definition Accessor.hpp:368
std::enable_if< std::is_arithmetic< U >::value, void >::type operator+=(T _index)
Definition Accessor.hpp:347
std::enable_if< if_multiplication< U >::value, void >::type operator*=(U _index)
Definition Accessor.hpp:361
WriteOnly< T > writeOnly
Definition Accessor.hpp:270
std::enable_if< if_subtraction< U >::value, void >::type operator-=(U _index)
Definition Accessor.hpp:354
std::enable_if< if_division< U >::value, void >::type operator/=(U _index)
Definition Accessor.hpp:570
std::enable_if< std::is_arithmetic< U >::value, U >::type operator+(U _plus) const
Definition Accessor.hpp:501
ReadOnly< T > readOnly
Definition Accessor.hpp:466
std::enable_if< std::is_arithmetic< U >::value, void >::type operator+=(T _index)
Definition Accessor.hpp:549
std::enable_if< if_remainder< U >::value, U >::type operator%(U _index) const
Definition Accessor.hpp:530
T * operator->()
Definition Accessor.hpp:478
std::enable_if< if_subtraction< U >::value, U >::type operator-(U _index) const
Definition Accessor.hpp:509
std::enable_if< if_multiplication< U >::value, U >::type operator*(U _index) const
Definition Accessor.hpp:516
CustomAccessor(T *_variable, function< T(T)> _setFunc)
コンストラクタ
Definition Accessor.hpp:474
std::enable_if< if_multiplication< U >::value, void >::type operator*=(U _index)
Definition Accessor.hpp:563
CustomWriteOnly< T > writeOnly
Definition Accessor.hpp:467
std::enable_if< if_division< U >::value, U >::type operator/(U _index) const
Definition Accessor.hpp:523
std::enable_if< if_remainder< U >::value, void >::type operator%=(U _index)
Definition Accessor.hpp:577
void operator=(T _set)
Definition Accessor.hpp:539
std::enable_if< if_subtraction< U >::value, void >::type operator-=(U _index)
Definition Accessor.hpp:556
public空間に置くことで,自らが定義したT*のSetterを提供します
Definition Accessor.hpp:389
T * variable
Definition Accessor.hpp:391
std::enable_if< if_subtraction< U >::value, void >::type operator-=(U _index)
Definition Accessor.hpp:428
void operator=(T _set)
Definition Accessor.hpp:404
std::enable_if< if_multiplication< U >::value, void >::type operator*=(U _index)
Definition Accessor.hpp:435
T * operator->()
Definition Accessor.hpp:412
std::enable_if< std::is_arithmetic< U >::value, void >::type operator+=(T _index)
Definition Accessor.hpp:421
std::enable_if< if_division< U >::value, void >::type operator/=(U _index)
Definition Accessor.hpp:442
function< T(T)> SetFunc
Definition Accessor.hpp:392
std::enable_if< if_remainder< U >::value, void >::type operator%=(U _index)
Definition Accessor.hpp:449
CustomWriteOnly(T *_variable, function< T(T)> _setFunc)
コンストラクタ
Definition Accessor.hpp:399
public空間に置くことで,T*のSetterを提供します
Definition Accessor.hpp:117
const T * operator->() const
Definition Accessor.hpp:135
T * variable
Definition Accessor.hpp:119
ReadOnly(T *_variable)
Definition Accessor.hpp:122
std::enable_if< if_subtraction< U >::value, U >::type operator-(U _index) const
Definition Accessor.hpp:157
std::enable_if< if_remainder< U >::value, U >::type operator%(U _index) const
Definition Accessor.hpp:178
std::enable_if< std::is_arithmetic< U >::value, U >::type operator+(U _plus) const
Definition Accessor.hpp:149
std::enable_if< if_division< U >::value, U >::type operator/(U _index) const
Definition Accessor.hpp:171
std::enable_if< if_multiplication< U >::value, U >::type operator*(U _index) const
Definition Accessor.hpp:164
public空間に置くことで,T*のGetterを提供します
Definition Accessor.hpp:195
void operator=(T _set)
Definition Accessor.hpp:207
T * variable
Definition Accessor.hpp:197
std::enable_if< std::is_arithmetic< U >::value, void >::type operator+=(T _index)
Definition Accessor.hpp:224
std::enable_if< if_subtraction< U >::value, void >::type operator-=(U _index)
Definition Accessor.hpp:231
std::enable_if< if_division< U >::value, void >::type operator/=(U _index)
Definition Accessor.hpp:245
std::enable_if< if_multiplication< U >::value, void >::type operator*=(U _index)
Definition Accessor.hpp:238
T * operator->()
Definition Accessor.hpp:214
std::enable_if< if_remainder< U >::value, void >::type operator%=(U _index)
Definition Accessor.hpp:252
WriteOnly(T *_variable)
Definition Accessor.hpp:200
Definition Accessor.hpp:110
Definition Accessor.hpp:89
Definition Accessor.hpp:79
Definition Accessor.hpp:99
Definition Accessor.hpp:69