#pragma once #include "tensor.hpp" #include "common_header.hpp" #include "ConstantTensorDescriptor_deprecated.hpp" #include "tensor_descriptor.hpp" template auto make_TensorDescriptor_impl(ConstTensorDesc, std::integer_sequence) { std::initializer_list lengths = {ConstTensorDesc::GetLengths()[Is]...}; std::initializer_list strides = {ConstTensorDesc::GetStrides()[Is]...}; return TensorDescriptor(lengths, strides); } template auto make_TensorDescriptor(ConstTensorDesc) { return make_TensorDescriptor_impl( ConstTensorDesc{}, std::make_integer_sequence{}); } template void ostream_ConstantTensorDescriptor(ConstTensorDesc, std::ostream& os = std::cout) { ostream_TensorDescriptor(make_TensorDescriptor(ConstTensorDesc{}), os); }