11#ifndef NDARRAY_ndarray_fwd_h_INCLUDED
12#define NDARRAY_ndarray_fwd_h_INCLUDED
30#include <boost/type_traits/is_const.hpp>
31#include <boost/type_traits/add_const.hpp>
32#include <boost/type_traits/remove_const.hpp>
33#include <boost/mpl/bool.hpp>
37#if __GNUC__ == 4 && __GNUC_MINOR__ == 5
42#define NDARRAY_ASSERT(ARG) assert(ARG)
46template <
typename T,
int N,
int C>
struct ArrayTraits;
47template <
typename Expression_>
struct ExpressionTraits;
53typedef std::size_t Size;
54typedef std::ptrdiff_t Offset;
58template <
int N>
class Core;
60class CountingExpression;
64 typename UnaryFunction,
65 int N = ExpressionTraits<Operand>::ND::value
67class UnaryOpExpression;
72 typename BinaryFunction,
73 int N = ExpressionTraits<Operand1>::ND::value
75class BinaryOpExpression;
87 typename UnaryFunction
94 typename BinaryFunction
103template <
typename Derived>
class ArrayBase;
104template <
typename T,
int N,
int C=0>
class ArrayRef;
105template <
typename T,
int N,
int C=0>
class Array;
106template <
typename T,
int N>
struct Vector;
CRTP implementation for Array and ArrayRef.
Definition ArrayBase.h:43
A proxy class for Array with deep assignment operators.
Definition ArrayRef.h:34
A multidimensional strided array.
Definition Array.h:35
CRTP base class for all multidimensional expressions.
Definition ExpressionBase.h:40
Definition NestedIterator.h:46
Definition StridedIterator.h:36
DataOrderEnum
An enumeration for stride computation.
Definition ndarray_fwd.h:51
A fixed-size 1D array class.
Definition Vector.h:82
Definition ndarray_fwd.h:77