10#ifndef XTENSOR_INFO_HPP
11#define XTENSOR_INFO_HPP
15#include "../core/xlayout.hpp"
22 template <std::
size_t N>
23 explicit constexpr static_string(
const char (&a)[N]) noexcept
29 constexpr static_string(
const char* a,
const std::size_t sz) noexcept
35 const char*
const data;
36 const std::size_t size;
45#elif defined(__GNUC__)
48#elif defined(_MSC_VER)
55 std::string type_to_string()
57 static_string static_name = type_name<T>();
58 return std::string(static_name.data, static_name.size);
62 std::string info(
const T& t)
65 s +=
"\nValue type: " + type_to_string<typename T::value_type>();
85 for (
const auto& el : t.shape())
92 s += std::to_string(el);
96 for (
const auto& el : t.strides())
103 s += std::to_string(el);
105 s +=
")\nSize: " + std::to_string(t.size()) +
"\n";
standard mathematical functions for xexpressions