A temporary concept to check if a type is a valid AQuaternion type TODO(palmerb4): Extend this concept to contain all shared setters and getters for our quaternions.
template<typename QuaternionType>
requires(std::decay_t<QuaternionType> quaternion, const std::decay_t<QuaternionType> const_quaternion) {
typename std::decay_t<QuaternionType>::value_type;
{ quaternion[0] } -> std::convertible_to<typename std::decay_t<QuaternionType>::value_type>;
{ quaternion[1] } -> std::convertible_to<typename std::decay_t<QuaternionType>::value_type>;
{ quaternion[2] } -> std::convertible_to<typename std::decay_t<QuaternionType>::value_type>;
{ quaternion[3] } -> std::convertible_to<typename std::decay_t<QuaternionType>::value_type>;
{ quaternion(0) } -> std::convertible_to<typename std::decay_t<QuaternionType>::value_type>;
{ quaternion(1) } -> std::convertible_to<typename std::decay_t<QuaternionType>::value_type>;
{ quaternion(2) } -> std::convertible_to<typename std::decay_t<QuaternionType>::value_type>;
{ quaternion(3) } -> std::convertible_to<typename std::decay_t<QuaternionType>::value_type>;
{ const_quaternion[0] } -> std::convertible_to<const typename std::decay_t<QuaternionType>::value_type>;
{ const_quaternion[1] } -> std::convertible_to<const typename std::decay_t<QuaternionType>::value_type>;
{ const_quaternion[2] } -> std::convertible_to<const typename std::decay_t<QuaternionType>::value_type>;
{ const_quaternion[3] } -> std::convertible_to<const typename std::decay_t<QuaternionType>::value_type>;
{ const_quaternion(0) } -> std::convertible_to<const typename std::decay_t<QuaternionType>::value_type>;
{ const_quaternion(1) } -> std::convertible_to<const typename std::decay_t<QuaternionType>::value_type>;
{ const_quaternion(2) } -> std::convertible_to<const typename std::decay_t<QuaternionType>::value_type>;
{ const_quaternion(3) } -> std::convertible_to<const typename std::decay_t<QuaternionType>::value_type>;
}
A temporary concept to check if a type is a valid AQuaternion type TODO(palmerb4): Extend this concep...
Definition Quaternion.hpp:62
constexpr bool is_quaternion_v
Definition Quaternion.hpp:57