3#ifndef pRC_CORE_TENSOR_VIEWS_BLOCK_H
4#define pRC_CORE_TENSOR_VIEWS_BLOCK_H
12 template<
class T,
class N,
class B,
class V>
18 Assignable<T, Sizes<Ns...>,
19 Block<T, Sizes<Ns...>, Sizes<Bs...>, V>>,
20 View<T, Sizes<Ns...>, Block<T, Sizes<Ns...>, Sizes<Bs...>, V>>>
29 template<
class X, If<IsSame<V, RemoveReference<X>>> = 0>
36 if(mOffsets.isOutOfRange())
43 using Base::operator=;
46 If<
IsSatisfied<(
sizeof...(Is) ==
typename Base::Dimension())>> = 0>
51 [
this](
auto const &
indices,
auto const...
seq) ->
decltype(
auto)
59 If<
IsSatisfied<(
sizeof...(Is) ==
typename Base::Dimension())>> = 0>
64 [
this](
auto const &
indices,
auto const...
seq) ->
decltype(
auto)
71 constexpr decltype(
auto)
operator()(
77 constexpr decltype(
auto)
operator()(
78 typename Base::Subscripts
const &
subscripts)
const
Definition indices.hpp:15
Definition sequence.hpp:56
Definition subscripts.hpp:20
Definition assignable.hpp:22
constexpr decltype(auto) operator()(Is const ... indices) const
Definition block.hpp:60
constexpr decltype(auto) operator()(Is const ... indices)
Definition block.hpp:47
Block(X &&a, Subscripts< Bs... > const &offsets)
Definition block.hpp:30
Definition type_traits.hpp:32
static void error(Xs &&...args)
Definition log.hpp:14
Definition diagonal.hpp:11
std::enable_if_t< B{}, int > If
Definition type_traits.hpp:68
std::size_t Size
Definition type_traits.hpp:20
Constant< Bool, B > IsSatisfied
Definition type_traits.hpp:71
static constexpr Conditional< IsSatisfied< C >, RemoveConstReference< X >, X > copy(X &&a)
Definition copy.hpp:13
constexpr auto cDebugLevel
Definition config.hpp:46
std::conditional_t< B{}, T, F > Conditional
Definition type_traits.hpp:131
static constexpr decltype(auto) expand(Sequence< T, Seq... > const, F &&f, Xs &&...args)
forwards the values in a pRC::Sequence to a function as parameters
Definition sequence.hpp:354
#define BEGIN_IGNORE_DIAGNOSTIC_GCC(warning)
Definition pragma.hpp:42
#define END_IGNORE_DIAGNOSTIC_GCC
Definition pragma.hpp:43