Expression Templates Library (ETL)
wrapper_expression_builder.hpp
Go to the documentation of this file.
1 //=======================================================================
2 // Copyright (c) 2014-2023 Baptiste Wicht
3 // Distributed under the terms of the MIT License.
4 // (See accompanying file LICENSE or copy at
5 // http://opensource.org/licenses/MIT)
6 //=======================================================================
7 
14 #pragma once
15 
16 namespace etl {
17 
25 template <typename Expr>
28 }
29 
38 template <typename Expr>
41 }
42 
52 template <typename R, typename Expr>
54  return timed_expr<detail::build_type<Expr>, R>{expr};
55 }
56 
65 template <typename Expr>
68 }
69 
78 template <typename Expr>
81 }
82 
83 #ifdef ETL_MANUAL_SELECT
84 
90 template <typename Selector, Selector V, typename Expr>
91 auto selected(Expr&& expr) -> selected_expr<Selector, V, detail::build_type<Expr>> {
93 }
94 
95 #define selected_helper(v, expr) etl::selected<decltype(v), v>(expr)
96 
97 #endif
98 
99 } //end of namespace etl
Definition: expr_fwd.hpp:44
auto opt(Expr &&expr) -> optimized_expr< detail::build_type< Expr >>
Create an optimized expression wrapping the given expression.
Definition: wrapper_expression_builder.hpp:26
auto timed(Expr &&expr) -> timed_expr< detail::build_type< Expr >>
Create a timed expression wrapping the given expression.
Definition: wrapper_expression_builder.hpp:39
Root namespace for the ETL library.
Definition: adapter.hpp:15
A wrapper for expressions that need to be optimized.
Definition: optimized_expr.hpp:25
auto timed_res(Expr &&expr) -> timed_expr< detail::build_type< Expr >, R >
Create a timed expression wrapping the given expression with the given resolution.
Definition: wrapper_expression_builder.hpp:53
auto parallel(Expr &&expr) -> parallel_expr< detail::build_type< Expr >>
Create a parallel expression wrapping the given expression.
Definition: wrapper_expression_builder.hpp:79
A wrapper for expressions that is to be executed in parallel.
Definition: parallel_expr.hpp:28
A wrapper for expressions that is forced to be serial.
Definition: serial_expr.hpp:23
auto serial(Expr &&expr) -> serial_expr< detail::build_type< Expr >>
Create a serial expression wrapping the given expression.
Definition: wrapper_expression_builder.hpp:66
A wrapper for expressions that need to be timed.
Definition: timed_expr.hpp:25