A structural set of one family's features, without prerequisite closure.
More...
#include <isa.h>
|
|
using | feature_type = typename detail::feature_traits<Family>::type |
| | Feature enum accepted by this ISA family.
|
|
|
constexpr | isa () noexcept=default |
| | Construct the empty requirement set.
|
|
constexpr | isa (feature_type f) noexcept |
| | Require exactly one feature of this family, without prerequisite closure.
|
|
constexpr bool | get (feature_type f) const noexcept |
| | Read one feature; out-of-range values are absent.
|
| constexpr void | set (feature_type f, bool value) noexcept |
|
constexpr bool | has (feature_type f) const noexcept |
| | True when the feature is present.
|
|
constexpr bool | has (isa other) const noexcept |
| | True when every bit in a same-family requirement is present.
|
|
constexpr bool | valid () const noexcept |
| | True when no invalid marker or unregistered padding bit is set.
|
|
constexpr bool | operator== (isa const &) const =default |
| | Compare every stored bit, including invalid requirements.
|
|
|
std::array< std::uint64_t,(feature_count+1+63)/64 > | flags {} |
| | Public structural bits; invalid enum values and padding fail validation.
|
|
|
static constexpr architecture | family =Family |
| | Architecture family, independent of the compiler target.
|
|
static constexpr auto | feature_count =detail::feature_traits<Family>::count |
| | Number of registered features in this family.
|
A structural set of one family's features, without prerequisite closure.
Exact requirements for an unrecognized target family; only the empty set is valid.
Definition at line 58 of file isa.h.
◆ set()
Set or clear one feature. Requiring an invalid enum records an invalid set. Clearing an invalid enum does nothing; neither case indexes outside storage.
Definition at line 78 of file isa.h.
The documentation for this struct was generated from the following file: