Предположим, у меня есть следующий код:
Код: Выделить всё
using Element = std::array;
constexpr auto arrayOfElement()
{
return std::array
{
Element{ 1, 2 },
Element{ 2, 3 },
Element{ 123, 123 },
Element{ 8008, 1337 }
};
}
Это прекрасно компилируется, но для того, чтобы указать, что тип, который я имел в виду, является элементом возвращаемого массива, мне приходилось постоянно повторять имя типа Element. Написано по-другому:
Код: Выделить всё
constexpr auto arrayOfElement2()
{
return std::array
{
Element{ 1, 2 },
{ 2, 3 },
{ 123, 123 },
{ 8008, 1337 }
};
}
Здесь мне не нужно вводить Element столько раз, сколько имеется элементов, но в этом случае я не могу определить размер, и первый элемент должен быть типизировано, из-за чего все это выглядит несколько неуклюже из-за наличия краевого регистра для первого элемента.
Есть ли способ указать тип Element только один раз , но также определить размер массива (частичный CTAD)?
Подробнее здесь:
https://stackoverflow.com/questions/781 ... t-any-size