是否有任何安全且符合标准的方法可以将 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;
}
感觉应该是可能的,因为数据应该以相同的方式存储。
编辑:要清楚我不想清除新的 std::array,我想将现有数据称为一个。