12#include "detray/definitions/detail/qualifiers.hpp"
18namespace detray::detail {
22 requires std::is_fundamental_v<T> || std::is_enum_v<T>
23DETRAY_HOST_DEVICE
constexpr T invalid_value() noexcept {
24 return std::numeric_limits<T>::max();
29 requires(!std::is_fundamental_v<T>) && (!std::is_enum_v<T>) &&
30 std::is_default_constructible_v<T>
31DETRAY_HOST_DEVICE
constexpr T invalid_value() noexcept {
36 requires std::is_fundamental_v<T>
37DETRAY_HOST_DEVICE
constexpr bool is_invalid_value(
const T value)
noexcept {
38 if constexpr (std::is_signed_v<T>) {
39 return (value == detail::invalid_value<T>() ||
40 value == -detail::invalid_value<T>());
42 return (value == detail::invalid_value<T>());
47 requires(!std::is_fundamental_v<T>)
48DETRAY_HOST_DEVICE
constexpr bool is_invalid_value(
const T& value)
noexcept {
49 return (value == detail::invalid_value<T>());
constexpr double T
Magnetic field, native unit (eV*s)/(e*m²).
Definition Units.hpp:168