MakeSignalingNan.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <limits>
7 
8 // @{
9 /// \ingroup UtilitiesGroup
10 /// \brief Returns an appropriate signaling NaN for fundamantal or multi-field
11 /// types (such as `std::complex`).
12 template <typename T>
13 T make_signaling_NaN(const T& /*meta*/) noexcept {
15 }
16 
17 template <typename T>
21 }
22 
23 template <typename T>
24 T make_signaling_NaN() noexcept {
25  return make_signaling_NaN(static_cast<T>(0));
26 }
27 // @}
T signaling_NaN(T... args)
T make_signaling_NaN(const T &) noexcept
Returns an appropriate signaling NaN for fundamantal or multi-field types (such as std::complex)...
Definition: MakeSignalingNan.hpp:13