Использование размера `std :: array` в другом` std :: array` - PullRequest
0 голосов
/ 05 июня 2019

У меня есть std::array, определенный в одной части кода

std::array<int, 303> data;

Я хотел бы объявить еще один std::array с таким же размером. Как это:

std::array<double, data.size()> other_data;

По сути, я хотел бы использовать информацию из data, а не использовать ту же самую константу. Но он не компилируется с -std=c++11. Возможно ли это вообще, и если да, то как лучше всего это сделать?

Ответы [ 2 ]

1 голос
/ 05 июня 2019

Ваш код в порядке и без проблем компилируется: https://godbolt.org/z/pjFmbD. Нет, data не обязательно должен быть константным, потому что std::array::size равно const constexpr: https://en.cppreference.com/w/cpp/container/array/size

0 голосов
/ 05 июня 2019

Вы можете вычислить количество элементов из sizeof

sizeof(data)/sizeof(data[0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...