c++ - 根据 c++ 草稿,运行时数组边界在堆栈上
问题描述
根据我基于先前阅读的理解,数组大小需要在编译时保持不变并且已知,但支持 VLA 的 g++ 提供的额外支持除外。
然而,我正在经历一份 c++ 草案,现在我很困惑,c++ 是否支持运行时数组边界。他们给出了下面的代码示例来定义数组。
C++ 草案链接:http ://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3690.pdf
第 8.3.4 节
例如:
void f(unsigned int n) {
int a[n]; // type of a is “array of runtime bound of int”
}
解决方案
不,C++ 没有并且仍然不支持具有运行时大小的数组。N3690 是 C++11 和 C++14 之间的草案,它包含来自提案N3639 Runtime-sized arrays with automatic storage duration (revision 5)的文本
该提案最终被废弃,并且在C++14 草案 N4140中删除了该文本。
浏览草稿时,您可以用作“标准”的草稿是
推荐阅读
- kotlin - 如何使用 ktor 客户端帖子序列化为密封类
- excel - 排序功能 Excel VB.Net
- java - 通过 maven 导入本地 jar 会给出类的完全限定名
- reactjs - 如何将字母映射列表拆分为多个
- React 按首字母排序?
- c# - 不能简单地将类型“字符串 []”转换为“Xamarin.Forms.BindableProperty”
- php - PHP Erro 出现“意外的‘邮件’”
- java - Spring 3.2 - 在 RestController 中处理 HttpClientError
- javascript - 找不到变量:LATITUDE、LONGITUDE 和 AnimatedRegion。window.navigator.geolocation.getCurrentPosition 也不可用
- c# - Azure.Messaging.ServiceBus:我应该在处置时从 ServiceBusProcessor 中删除 ProcessMessageAsync 处理程序吗?
- c# - post方法中的验证