Tannic
A C++ Tensor Library
Loading...
Searching...
No Matches
concepts.hpp File Reference

Defines core C++20 concepts used throughout the Tannic Tensor Library. More...

#include <concepts>
#include <iterator>
#include "types.hpp"
Include dependency graph for concepts.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  tannic
 

Concepts

concept  tannic::Expression
 Defines the core protocol for all expression-like types in the Tannic Tensor Library.
 
concept  tannic::Operator
 Concept defining requirements for tensor operation types.
 
concept  tannic::Functional
 Concept for unary mathematical function operations.
 
concept  tannic::Iterable
 Requires a type to be iterable via std::begin and std::end.
 
concept  tannic::Iterator
 Requires a type to satisfy the C++20 std::input_iterator concept.
 
concept  tannic::Integral
 Requires a type to be an integral type (e.g., int, std::size_t).
 
concept  tannic::Assignable
 Concept for types that can assign values.
 
concept  tannic::Comparable
 Concept for types that can compare their value.
 

Detailed Description

Defines core C++20 concepts used throughout the Tannic Tensor Library.

Date
2025

This header the tannic::Expression fundamental concept as a compile time interface for all operations defined in this library and a few other concepts used internally to validate template arguments in compile-time expressions.

Note
Unless you are extending the library with your custom expressions you can skip this secction.