xtensor
Loading...
Searching...
No Matches
xt::extension::xscalar_optional_traits< CT > Struct Template Reference

Public Types

using closure_type = CT
 
using unref_closure_type = std::remove_reference_t<closure_type>
 
using raw_closure_type = std::decay_t<CT>
 
using raw_value_closure = typename raw_closure_type::value_closure
 
using raw_flag_closure = typename raw_closure_type::flag_closure
 
using const_raw_value_closure = std::add_const_t<raw_value_closure>
 
using const_raw_flag_closure = std::add_const_t<raw_flag_closure>
 
using value_closure = std::conditional_t<is_ref, std::add_lvalue_reference_t<raw_value_closure>, raw_value_closure>
 
using flag_closure = std::conditional_t<is_ref, std::add_lvalue_reference_t<raw_flag_closure>, raw_flag_closure>
 
using const_value_closure
 
using const_flag_closure
 
using value_expression = xscalar<std::conditional_t<is_const, const_value_closure, value_closure>>
 
using flag_expression = xscalar<std::conditional_t<is_const, const_flag_closure, flag_closure>>
 
using const_value_expression = xscalar<const_value_closure>
 
using const_flag_expression = xscalar<const_flag_closure>
 

Static Public Attributes

static constexpr bool is_ref = std::is_reference<closure_type>::value
 
static constexpr bool is_const = std::is_const<unref_closure_type>::value
 

Detailed Description

template<class CT>
struct xt::extension::xscalar_optional_traits< CT >

Definition at line 278 of file xoptional.hpp.

Member Typedef Documentation

◆ closure_type

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::closure_type = CT

Definition at line 280 of file xoptional.hpp.

◆ const_flag_closure

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::const_flag_closure
Initial value:
std::
conditional_t<is_ref, std::add_lvalue_reference_t<const_raw_flag_closure>, raw_flag_closure>

Definition at line 295 of file xoptional.hpp.

◆ const_flag_expression

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::const_flag_expression = xscalar<const_flag_closure>

Definition at line 301 of file xoptional.hpp.

◆ const_raw_flag_closure

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::const_raw_flag_closure = std::add_const_t<raw_flag_closure>

Definition at line 289 of file xoptional.hpp.

◆ const_raw_value_closure

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::const_raw_value_closure = std::add_const_t<raw_value_closure>

Definition at line 288 of file xoptional.hpp.

◆ const_value_closure

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::const_value_closure
Initial value:
std::
conditional_t<is_ref, std::add_lvalue_reference_t<const_raw_value_closure>, raw_value_closure>

Definition at line 293 of file xoptional.hpp.

◆ const_value_expression

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::const_value_expression = xscalar<const_value_closure>

Definition at line 300 of file xoptional.hpp.

◆ flag_closure

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::flag_closure = std::conditional_t<is_ref, std::add_lvalue_reference_t<raw_flag_closure>, raw_flag_closure>

Definition at line 292 of file xoptional.hpp.

◆ flag_expression

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::flag_expression = xscalar<std::conditional_t<is_const, const_flag_closure, flag_closure>>

Definition at line 299 of file xoptional.hpp.

◆ raw_closure_type

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::raw_closure_type = std::decay_t<CT>

Definition at line 284 of file xoptional.hpp.

◆ raw_flag_closure

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::raw_flag_closure = typename raw_closure_type::flag_closure

Definition at line 287 of file xoptional.hpp.

◆ raw_value_closure

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::raw_value_closure = typename raw_closure_type::value_closure

Definition at line 286 of file xoptional.hpp.

◆ unref_closure_type

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::unref_closure_type = std::remove_reference_t<closure_type>

Definition at line 282 of file xoptional.hpp.

◆ value_closure

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::value_closure = std::conditional_t<is_ref, std::add_lvalue_reference_t<raw_value_closure>, raw_value_closure>

Definition at line 291 of file xoptional.hpp.

◆ value_expression

template<class CT >
using xt::extension::xscalar_optional_traits< CT >::value_expression = xscalar<std::conditional_t<is_const, const_value_closure, value_closure>>

Definition at line 298 of file xoptional.hpp.

Member Data Documentation

◆ is_const

template<class CT >
constexpr bool xt::extension::xscalar_optional_traits< CT >::is_const = std::is_const<unref_closure_type>::value
staticconstexpr

Definition at line 283 of file xoptional.hpp.

◆ is_ref

template<class CT >
constexpr bool xt::extension::xscalar_optional_traits< CT >::is_ref = std::is_reference<closure_type>::value
staticconstexpr

Definition at line 281 of file xoptional.hpp.


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