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.
algebraic_tag_t | is an algebraic tag. It is a trait type defined to distinguish arithmetic types which implement definitions of various algebraic structures. |
T | is 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.