chsvlib
chsv helper source code
algebraic_traits< T > Struct Template Reference

Is a trait class that provides uniform interface to assess whether a type implements an abstract algebra structure, such as Rng, ring, field, etc. More...

#include <chsvmath.h>

Inheritance diagram for algebraic_traits< T >:
Collaboration diagram for algebraic_traits< T >:

Detailed Description

template<class T>
struct Chusov::Math::algebraic_traits< T >

Is a trait class that provides uniform interface to assess whether a type implements an abstract algebra structure, such as Rng, ring, field, etc.

For an algebraic type T, the nested type

algebraic_traits<T>::algebraic_category

defines an algebraic category of T by aliasing one of the algebraic category tags.

The class algebraic_traits is SFINAE friendly, i.e. if T is not an algebraic type, the instance algebraic_traits<T> does not define any nested types.

This template type alias makes it possible to implement algorithms only in terms of that algebraic structures. See algebraic traits tags for the details upon this mechanism.

Examples
chsvmath\algebraic_traits.cpp.

The documentation for this struct was generated from the following file: