Существует ли безопасный и стандартный способ обработки массива стиля C как std:: array без копирования данных в новый std:: array?
Это явно не компилируется, но это эффект, который мне бы хотелось (мое реальное использование сложнее, но этот короткий образец должен показать, что я хотел бы сделать). Я предполагаю, что reinterpret_cast "работает", но, вероятно, небезопасен?
#include <array>
int main()
{
int data[] = {1, 2, 3, 4, 5};
// This next line is the important one, treating an existing array as a std::array
std::array<int, 5>& a = data;
}
Похоже, что это должно быть возможно, поскольку данные должны храниться одинаково.
edit: Чтобы быть ясным, я не хочу очищать новый std:: array, я хочу ссылаться на существующие данные как на один.