chsvlib
chsv helper source code

◆ is_algebraic_structure

using is_algebraic_structure = decltype(Implementation::is_algebraic_structure<algebraic_tag_t, T>(int()))

Resolves to std::true_type if a supplied type T implements operations as required by an algebraic structure identified by an algebraic tag.

Template Parameters
algebraic_tag_tis an algebraic tag. It is a trait type defined to distinguish arithmetic types which implement definitions of various algebraic structures.
Tis a type whose traits are being retrieved.

If T implements elements of an algebraic structure and declares it by defining a corresponding publicly available type tag, which is either an alias to algebraic_tag_t or a direct or indirect inheritor of algebraic_tag_t, the template type alias will resolve to std::true_type. Otherwise, the alias is made for std::false_type. The chsvlib algorithms, as well as chsvlib-compatible algorithms, will consider this fact during a selection of the most appropriate forms of their behaviour.

See also
is_rng;
is_ring;
is_commutative_ring;
is_division_ring;
is_field.