6#ifndef VIR_SIMD_VERSION_H_
7#define VIR_SIMD_VERSION_H_
13#if __cpp_impl_three_way_comparison >= 201907L and __cpp_lib_three_way_comparison >= 201907L
14#define VIR_HAVE_SPACESHIP 1
17#define VIR_HAVE_SPACESHIP 0
28#define VIR_SIMD_VERSION 0x0'04'bd
33#define VIR_SIMD_VERSION_MAJOR (VIR_SIMD_VERSION / 0x10000)
38#define VIR_SIMD_VERSION_MINOR ((VIR_SIMD_VERSION % 0x10000) / 0x100)
43#define VIR_SIMD_VERSION_PATCHLEVEL (VIR_SIMD_VERSION % 0x100)
72 {
return not (a == b); }
76 friend constexpr std::strong_ordering
100 operator>=(simd_version_t a, simd_version_t b)
113 inline constexpr simd_version_t
This namespace collects libraries and tools authored by Matthias Kretz.
Definition constexpr_wrapper.h:21
constexpr simd_version_t simd_version
The current version.
Definition simd_version.h:114
#define VIR_SIMD_VERSION_MINOR
The minor version number component.
Definition simd_version.h:38
#define VIR_SIMD_VERSION_MAJOR
The major version number component.
Definition simd_version.h:33
#define VIR_SIMD_VERSION_PATCHLEVEL
The patchlevel version number component.
Definition simd_version.h:43
Represents the vir-simd version of major, minor, and patchlevel components.
Definition simd_version.h:56
friend constexpr std::strong_ordering operator<=>(simd_version_t, simd_version_t)=default
Relational operators.
int major
An increment of the major version number implies a breaking change.
Definition simd_version.h:58
friend constexpr bool operator==(simd_version_t a, simd_version_t b)
Check for equality.
Definition simd_version.h:66
friend constexpr bool operator!=(simd_version_t a, simd_version_t b)
Check for inequality.
Definition simd_version.h:71
int minor
An increment of the minor version number implies new features without breaking changes.
Definition simd_version.h:60
int patchlevel
An increment of the patchlevel is used for bug fixes. Odd numbers indicate a development version.
Definition simd_version.h:62