- Documentation and logic fixes for various structures
This commit is contained in:
@@ -168,6 +168,14 @@
|
||||
# define FENNEC_HAS_BUILTIN_IS_ARRAY
|
||||
#endif
|
||||
|
||||
// Inconsistent without intrinsics
|
||||
#if __has_builtin(__is_bounded_array)
|
||||
# define FENNEC_HAS_BUILTIN_IS_BOUNDED_ARRAY 1
|
||||
# define FENNEC_BUILTIN_IS_BOUNDED_ARRAY(arg) __is_bounded_array(arg)
|
||||
#else
|
||||
# define FENNEC_HAS_BUILTIN_IS_BOUNDED_ARRAY
|
||||
#endif
|
||||
|
||||
// Inconsistent without intrinsics
|
||||
#if __has_builtin(__is_class)
|
||||
# define FENNEC_HAS_BUILTIN_IS_CLASS 1
|
||||
@@ -176,6 +184,14 @@
|
||||
# define FENNEC_HAS_BUILTIN_IS_CLASS
|
||||
#endif
|
||||
|
||||
// Inconsistent without intrinsics
|
||||
#if __has_builtin(__is_scoped_enum)
|
||||
# define FENNEC_HAS_BUILTIN_IS_SCOPED_ENUM 1
|
||||
# define FENNEC_BUILTIN_IS_SCOPED_ENUM(arg) __is_scoped_enum(arg)
|
||||
#else
|
||||
# define FENNEC_HAS_BUILTIN_IS_SCOPED_ENUM
|
||||
#endif
|
||||
|
||||
#if __has_builtin(__is_member_pointer)
|
||||
# define FENNEC_HAS_BUILTIN_IS_MEMBER_POINTER 1
|
||||
# define FENNEC_BUILTIN_IS_MEMBER_POINTER(arg) __is_member_pointer(arg)
|
||||
@@ -211,11 +227,19 @@
|
||||
// Difficult and Inconsistent without intrinsics
|
||||
#if __has_builtin(__is_trivially_constructible)
|
||||
# define FENNEC_HAS_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE 1
|
||||
# define FENNEC_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE(type) __is_trivially_constructible(type)
|
||||
# define FENNEC_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE(type, ...) __is_trivially_constructible(type __VA_OPT__(,) __VA_ARGS__)
|
||||
#else
|
||||
# define FENNEC_HAS_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE 0
|
||||
#endif
|
||||
|
||||
// Difficult and Inconsistent without intrinsics
|
||||
#if __has_builtin(__is_nothrow_constructible)
|
||||
# define FENNEC_HAS_BUILTIN_IS_NOTHROW_CONSTRUCTIBLE 1
|
||||
# define FENNEC_BUILTIN_IS_NOTHROW_CONSTRUCTIBLE(type, ...) __is_nothrow_constructible(type __VA_OPT__(,) __VA_ARGS__)
|
||||
#else
|
||||
# define FENNEC_HAS_BUILTIN_IS_NOTHROW_CONSTRUCTIBLE 0
|
||||
#endif
|
||||
|
||||
// Difficult and Inconsistent without intrinsics
|
||||
#if __has_builtin(__has_trivial_destructor)
|
||||
# define FENNEC_HAS_BUILTIN_IS_TRIVIALLY_DESTRUCTIBLE 1
|
||||
@@ -235,6 +259,22 @@
|
||||
# define FENNEC_HAS_BUILTIN_IS_ASSIGNABLE 0
|
||||
#endif
|
||||
|
||||
// Difficult and Inconsistent without intrinsics
|
||||
#if __has_builtin(__is_trivially_assignable)
|
||||
# define FENNEC_HAS_BUILTIN_IS_TRIVIALLY_ASSIGNABLE 1
|
||||
# define FENNEC_BUILTIN_IS_TRIVIALLY_ASSIGNABLE(a, b) __is_trivially_assignable(a, b)
|
||||
#else
|
||||
# define FENNEC_HAS_BUILTIN_IS_TRIVIALLY_ASSIGNABLE 0
|
||||
#endif
|
||||
|
||||
// Difficult and Inconsistent without intrinsics
|
||||
#if __has_builtin(__is_nothrow_assignable)
|
||||
# define FENNEC_HAS_BUILTIN_IS_NOTHROW_ASSIGNABLE 1
|
||||
# define FENNEC_BUILTIN_IS_NOTHROW_ASSIGNABLE(a, b) __is_nothrow_assignable(a, b)
|
||||
#else
|
||||
# define FENNEC_HAS_BUILTIN_IS_NOTHROW_ASSIGNABLE 0
|
||||
#endif
|
||||
|
||||
// Inconsistent without intrinsics
|
||||
#if __has_builtin(__is_trivial)
|
||||
# define FENNEC_HAS_BUILTIN_IS_TRIVIAL 1
|
||||
|
||||
@@ -249,15 +249,15 @@ template<typename TypeT> struct numeric_limits
|
||||
static constexpr float_round_style rounding_style = round_indeterminate; ///< The rounding style of TypeT
|
||||
|
||||
// This is very poorly named and defined in the C++ Standard so these functions differ
|
||||
static constexpr TypeT min() { return TypeT(); } ///< Returns the minimum finite value of TypeT
|
||||
static constexpr TypeT max() { return TypeT(); } ///< Returns the maximum finite value of TypeT
|
||||
static constexpr TypeT lowest() { return TypeT(); } ///< Returns the smallest positive value of TypeT
|
||||
static constexpr TypeT epsilon() { return TypeT(); } ///< Returns the difference between 1.0 and the next representable value
|
||||
static constexpr TypeT round_error() { return TypeT(); } ///< Returns the max rounding error of TypeT
|
||||
static constexpr TypeT infinity() { return TypeT(); } ///< Returns a value of TypeT holding a positive infinity
|
||||
static constexpr TypeT quiet_NaN() { return TypeT(); } ///< Returns a value of TypeT holding a quiet NaN
|
||||
static constexpr TypeT signaling_NaN() { return TypeT(); } ///< Returns a value of TypeT holding a signaling NaN
|
||||
static constexpr TypeT denorm_min() { return TypeT(); } ///< Returns a value of TypeT holding the smallest positive subnormal
|
||||
static constexpr TypeT min() { return TypeT(); } ///< \returns the minimum finite value of TypeT
|
||||
static constexpr TypeT max() { return TypeT(); } ///< \returns the maximum finite value of TypeT
|
||||
static constexpr TypeT lowest() { return TypeT(); } ///< \returns the smallest positive value of TypeT
|
||||
static constexpr TypeT epsilon() { return TypeT(); } ///< \returns the difference between 1.0 and the next representable value
|
||||
static constexpr TypeT round_error() { return TypeT(); } ///< \returns the max rounding error of TypeT
|
||||
static constexpr TypeT infinity() { return TypeT(); } ///< \returns a value of TypeT holding a positive infinity
|
||||
static constexpr TypeT quiet_NaN() { return TypeT(); } ///< \returns a value of TypeT holding a quiet NaN
|
||||
static constexpr TypeT signaling_NaN() { return TypeT(); } ///< \returns a value of TypeT holding a signaling NaN
|
||||
static constexpr TypeT denorm_min() { return TypeT(); } ///< \returns a value of TypeT holding the smallest positive subnormal
|
||||
};
|
||||
|
||||
// Overload definitions for basic types
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -109,16 +109,16 @@
|
||||
/// \copydetails fennec::remove_cv
|
||||
///
|
||||
/// <tr><td width="50%" style="vertical-align: top"> <br>
|
||||
/// \ref fennec::add_cvr "add_cvr<TypeT>::type"<br>
|
||||
/// \ref fennec::add_cvr_t "add_cvr_t<TypeT>"
|
||||
/// \ref fennec::add_cvref "add_cvref<TypeT>::type"<br>
|
||||
/// \ref fennec::add_cvref_t "add_cvref_t<TypeT>"
|
||||
/// <td width="50%" style="vertical-align: top">
|
||||
/// \copydetails fennec::add_cvr
|
||||
/// \copydetails fennec::add_cvref
|
||||
///
|
||||
/// <tr><td width="50%" style="vertical-align: top"> <br>
|
||||
/// \ref fennec::remove_cvr "remove_cvr<TypeT>::type"<br>
|
||||
/// \ref fennec::remove_cvr_t "remove_cvr_t<TypeT>"
|
||||
/// \ref fennec::remove_cvref "remove_cvref<TypeT>::type"<br>
|
||||
/// \ref fennec::remove_cvref_t "remove_cvref_t<TypeT>"
|
||||
/// <td width="50%" style="vertical-align: top">
|
||||
/// \copydetails fennec::remove_cvr
|
||||
/// \copydetails fennec::remove_cvref
|
||||
///
|
||||
/// </table>
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user