#include
auto a1 = std::array{1};
auto a2 = std::array{std::array{1}};
static_assert(std::same_as); // passes
static_assert(std::same_as); // passes, but I expect this to fail
Так почему же вычет шаблонов для вложенного std :: array с одним элементом приводит к одному размерному std :: ray ?
Следующий код успешно компилируется с Clang и GCC . Наивно, я бы ожидал, что a2 будет тип std :: array . [code]#include
auto a1 = std::array{1}; auto a2 = std::array{std::array{1}}; static_assert(std::same_as); // passes static_assert(std::same_as); // passes, but I expect this to fail [/code] Так почему же вычет шаблонов для вложенного std :: array с одним элементом приводит к одному размерному std :: ray ?
У меня есть структурированный класс, такой как этот, где Fixdstr неявно конструируется из строкового литерала:
template
struct ParserCtx {
Parser parser;