Инициализируйте каждый элемент std::array по ссылке на другой std::array.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Инициализируйте каждый элемент std::array по ссылке на другой std::array.

Сообщение Anonymous »

У меня есть класс A:

Код: Выделить всё

class A {

};
и еще один класс B:

Код: Выделить всё

class B {
public:
explicit B(A &a) : aRef(a) {}
private:
A &aRef;
};
Сначала я инициализирую массив A:

Код: Выделить всё

std::array As{};
Теперь я хочу инициализировать массив B, каждый элемент которого инициализируется элементом A:

Код: Выделить всё

std::array Bs{B{As[0]}, B{As[1]}};
Это работает. Но по мере увеличения размера массива читаемость снижается, и мне приходится использовать другой скрипт для печати кода. Есть ли более элегантный способ сделать это?
Объявите Bs как массив std::unique_ptr. Однако мне нужен массив B напрямую. Я думаю, что сочетание шаблонов и std::index_sequence может быть правильным направлением.

Подробнее здесь: https://stackoverflow.com/questions/790 ... r-stdarray
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»