c++之使用 new[] 关键字时不允许不完整的类型
cyq1162
阅读:27
2025-02-15 21:57:57
评论:0
此代码给出错误
incomplete type is not allowed
too many initializer values
string *ReturnTwoStringsInArray()
{
return new string[]{"return1", "return2"};
}
这个有效:
string *ReturnTwoStringsInArray()
{
return new string[2]{"return1", "return2"};
}
这个也是如此:
string arr[]{"return1","return"};
难道我们不能打电话
new
在
[]
中没有参数编译器是否可以从初始化列表中确定所需的大小?
请您参考如下方法:
在 C++ compiler support我们可以看到缺陷报告P1009R2
:Array size deduction in new-expressions尚未被所有编译器供应商采用。P1009R2
说:“措辞更改的效果应该适用于它们适用的所有先前版本的 C++ 的实现。”clang++
从 C++11 模式及更高版本的版本 9 开始支持它。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。