#ifndef EIGEN_CXX11_TENSOR_TENSOR_IO_H
#define EIGEN_CXX11_TENSOR_TENSOR_IO_H
#include "./InternalHeaderCheck.h"
namespace Eigen {
struct TensorIOFormat;
namespace internal {
template <typename Tensor, std::size_t rank, typename Format, typename EnableIf = void>
struct TensorPrinter;
}
template <typename Derived_>
struct TensorIOFormatBase { … };
struct TensorIOFormatNumpy : public TensorIOFormatBase<TensorIOFormatNumpy> { … };
struct TensorIOFormatNative : public TensorIOFormatBase<TensorIOFormatNative> { … };
struct TensorIOFormatPlain : public TensorIOFormatBase<TensorIOFormatPlain> { … };
struct TensorIOFormatLegacy : public TensorIOFormatBase<TensorIOFormatLegacy> { … };
struct TensorIOFormat : public TensorIOFormatBase<TensorIOFormat> { … };
template <typename T, int Layout, int rank, typename Format>
class TensorWithFormat;
TensorWithFormat<T, RowMajor, rank, Format>;
TensorWithFormat<T, ColMajor, rank, Format>;
TensorWithFormat<T, ColMajor, 0, Format>;
namespace internal {
template <typename Scalar, typename Format, typename EnableIf = void>
struct ScalarPrinter { … };
ScalarPrinter<Scalar, TensorIOFormatNumpy, std::enable_if_t<NumTraits<Scalar>::IsComplex>>;
ScalarPrinter<Scalar, TensorIOFormatNative, std::enable_if_t<NumTraits<Scalar>::IsComplex>>;
template <typename Tensor, std::size_t rank, typename Format, typename EnableIf>
struct TensorPrinter { … };
TensorPrinter<Tensor, rank, TensorIOFormatLegacy, std::enable_if_t<rank != 0>>;
TensorPrinter<Tensor, 0, Format>;
}
template <typename T>
std::ostream& operator<<(std::ostream& s, const TensorBase<T, ReadOnlyAccessors>& t) { … }
}
#endif