TRIQS/nda 1.3.0
Multi-dimensional array library for C++
|
Various internally used type traits and overloads of the operator<<
to output lazy objects to a std::ostream.
Typedefs | |
template<class T > | |
using | nda::clef::expr_storage_t = typename detail::expr_storage_impl<T>::type |
Type trait to determine how a type should be stored in an expression tree, i.e. either by reference or by value? | |
Functions | |
template<typename Tag , typename L > requires std::is_base_of_v<tags::unary_op, Tag> | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, expr< Tag, L > const &ex) |
Print an nda::clef::tags::unary_op expression to std::ostream. | |
template<typename Tag , typename L , typename R > requires std::is_base_of_v<tags::binary_op, Tag> | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, expr< Tag, L, R > const &ex) |
Print an nda::clef::tags::binary_op expression to std::ostream. | |
template<typename... Ts> | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, expr< tags::function, Ts... > const &ex) |
Print an nda::clef::tags::function expression to std::ostream. | |
template<typename C , typename A , typename B > | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, expr< tags::if_else, C, A, B > const &ex) |
Print an nda::clef::tags::if_else expression to std::ostream. | |
template<typename T > | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, expr< tags::negate, T > const &ex) |
Print an nda::clef::tags::negate expression to std::ostream. | |
template<typename T > | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, expr< tags::subscript, T > const &ex) |
Print an nda::clef::tags::subscript expression to std::ostream. | |
template<typename... Ts> | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, expr< tags::subscript, Ts... > const &ex) |
Print a general nda::clef::tags::subscript expression to std::ostream. | |
template<typename T > | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, expr< tags::terminal, T > const &ex) |
Print an nda::clef::tags::terminal expression to std::ostream. | |
template<typename Expr , int... Is> | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, make_fun_impl< Expr, Is... > const &f) |
Print an nda::clef::make_fun_impl object to std::ostream. | |
template<int N> | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, placeholder< N >) |
Print an nda::clef::placeholder to a std::ostream. | |
template<typename T > | |
std::ostream & | nda::clef::operator<< (std::ostream &sout, std::reference_wrapper< T > const &wrapper) |
Print the value contained in a std::reference_wrapper to std::ostream. | |
template<typename Tuple > | |
std::ostream & | nda::clef::print_tuple (std::ostream &sout, Tuple const &t) |
Print a std::tuple to std::ostream. | |
template<typename T0 , typename... Ts> | |
std::ostream & | nda::clef::variadic_print (std::ostream &sout, T0 &&t0, Ts &&...ts) |
Print a variadic list of arguments to std::ostream. | |
Variables | |
template<typename T > | |
constexpr bool | nda::clef::force_copy_in_expr = detail::force_copy_in_expr_impl<T> |
Constexpr variable that is true if objects of type T should be forced to be copied into an expression tree. | |
template<typename... Ts> | |
constexpr bool | nda::clef::is_any_lazy = (is_lazy<Ts> or ...) |
Constexpr variable that is true if any of the given types is lazy. | |
template<typename... Ts> | |
constexpr bool | nda::clef::is_clef_expression = is_any_lazy<Ts...> |
Alias template for nda::clef::is_any_lazy. | |
template<typename T > | |
constexpr bool | nda::clef::is_function = detail::is_function_impl<T> |
Constexpr variable that is true if the type T is an nda::clef::make_fun_impl type. | |
template<typename T > | |
constexpr bool | nda::clef::is_lazy = detail::is_lazy_impl<T> |
Constexpr variable that is true if the type T is a lazy type. | |
using nda::clef::expr_storage_t = typename detail::expr_storage_impl<T>::type |
#include <nda/clef/utils.hpp>
Type trait to determine how a type should be stored in an expression tree, i.e. either by reference or by value?
Rvalue references are copied/moved into the expression tree. Lvalue references are stored as a std::reference_wrapper, unless the compile-time value of nda::clef::force_copy_in_expr is true.
T | Type to be stored. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
expr< Tag, L > const & | ex ) |
#include <nda/clef/io.hpp>
Print an nda::clef::tags::unary_op expression to std::ostream.
Tag | Type of the unary operation. |
L | Type of the child expression. |
sout | std::ostream object to print to. |
ex | nda::clef::expr object to print. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
expr< Tag, L, R > const & | ex ) |
#include <nda/clef/io.hpp>
Print an nda::clef::tags::binary_op expression to std::ostream.
Tag | Type of the binary operation. |
L | Type of the child expression #1. |
R | Type of the child expression #2. |
sout | std::ostream object to print to. |
ex | nda::clef::expr object to print. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
expr< tags::function, Ts... > const & | ex ) |
#include <nda/clef/io.hpp>
Print an nda::clef::tags::function expression to std::ostream.
Ts | Types of the arguments of the function. |
sout | std::ostream object to print to. |
ex | nda::clef::expr object to print. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
expr< tags::if_else, C, A, B > const & | ex ) |
#include <nda/clef/io.hpp>
Print an nda::clef::tags::if_else expression to std::ostream.
C | Type of the condition expression. |
A | Type of the return type when the condition is true. |
B | Type of the return type when the condition is false. |
sout | std::ostream object to print to. |
ex | nda::clef::expr object to print. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
expr< tags::negate, T > const & | ex ) |
#include <nda/clef/io.hpp>
Print an nda::clef::tags::negate expression to std::ostream.
T | Type of the child node. |
sout | std::ostream object to print to. |
ex | nda::clef::expr object to print. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
expr< tags::subscript, T > const & | ex ) |
#include <nda/clef/io.hpp>
Print an nda::clef::tags::subscript expression to std::ostream.
T | Type of the child node. |
sout | std::ostream object to print to. |
ex | nda::clef::expr object to print. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
expr< tags::subscript, Ts... > const & | ex ) |
#include <nda/clef/io.hpp>
Print a general nda::clef::tags::subscript expression to std::ostream.
Ts | Types of the subscript arguments. |
sout | std::ostream object to print to. |
ex | nda::clef::expr object to print. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
expr< tags::terminal, T > const & | ex ) |
#include <nda/clef/io.hpp>
Print an nda::clef::tags::terminal expression to std::ostream.
T | Type of the terminal child node. |
sout | std::ostream object to print to. |
ex | nda::clef::expr object to print. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
make_fun_impl< Expr, Is... > const & | f ) |
#include <nda/clef/io.hpp>
Print an nda::clef::make_fun_impl object to std::ostream.
Expr | Type of the expression. |
Is | Integer labels of the placeholders in the expression. |
sout | std::ostream object to print to. |
f | nda::clef::make_fun_impl object to print. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
placeholder< N > | ) |
#include <nda/clef/io.hpp>
Print an nda::clef::placeholder to a std::ostream.
N | Integer label of the placeholder. |
sout | std::ostream object to print to. |
std::ostream & nda::clef::operator<< | ( | std::ostream & | sout, |
std::reference_wrapper< T > const & | wrapper ) |
#include <nda/clef/io.hpp>
Print the value contained in a std::reference_wrapper to std::ostream.
T | Value type of the std::reference_wrapper. |
sout | std::ostream object to print to. |
wrapper | std::reference_wrapper object to print. |
std::ostream & nda::clef::print_tuple | ( | std::ostream & | sout, |
Tuple const & | t ) |
#include <nda/clef/io.hpp>
Print a std::tuple to std::ostream.
Tuple | Type of the std::tuple to print. |
sout | std::ostream object to print to. |
t | std::tuple object to print. |
std::ostream & nda::clef::variadic_print | ( | std::ostream & | sout, |
T0 && | t0, | ||
Ts &&... | ts ) |
#include <nda/clef/io.hpp>
Print a variadic list of arguments to std::ostream.
T0 | Type of the first argument. |
Ts | Types of the remaining arguments. |
sout | std::ostream object to print to. |
t0 | First argument to print. |
ts | Remaining arguments to print. |