|
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. |