ndarray: /home/runner/work/ndarray/ndarray/include/ndarray_fwd.h Source File

1

2

3

4

5

6

7

8

9

10

11#ifndef NDARRAY_ndarray_fwd_h_INCLUDED

12#define NDARRAY_ndarray_fwd_h_INCLUDED

13

21

23

25

27

28#include <cstddef>

29

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>

34#include <cassert>

35

36#ifdef __GNUC__

37#if __GNUC__ == 4 && __GNUC_MINOR__ == 5

38#define GCC_45

39#endif

40#endif

41

42#define NDARRAY_ASSERT(ARG) assert(ARG)

43

44namespace ndarray {

45

46template <typename T, int N, int C> struct ArrayTraits;

47template <typename Expression_> struct ExpressionTraits;

48class Manager;

49

52

53typedef std::size_t Size;

54typedef std::ptrdiff_t Offset;

55

56namespace detail {

57

58template <int N> class Core;

59

60class CountingExpression;

61

62template <

63 typename Operand,

64 typename UnaryFunction,

65 int N = ExpressionTraits<Operand>::ND::value

66 >

67class UnaryOpExpression;

68

69template <

70 typename Operand1,

71 typename Operand2,

72 typename BinaryFunction,

73 int N = ExpressionTraits<Operand1>::ND::value

74 >

75class BinaryOpExpression;

76

78

79template <typename T, int N, int C> class NestedIterator;

80

82

83#ifndef GCC_45

84

85template <

86 typename Operand,

87 typename UnaryFunction

88 >

90

91template <

92 typename Operand1,

93 typename Operand2,

94 typename BinaryFunction

95 >

97

98#endif

99

100}

101

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;

107

108}

109

110#endif

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