stl的copy算法的参数问题

成长记情 2016-11-29 07:29:08

#include<algorithm>
#include<iostream>
int main(void)
{
int a1[]{0,1,2,3,4,5,6,7,8,9};
int a2[sizeof(a1)/sizeof(*a1)];
//std::copy(std::begin(a1),std::end(a1),std::begin(a2));
std::copy(std::begin(a1),std::end(a1),a2);
for(const auto &i:a2)
std::cout<<i<<' ';
std::cout<<std::endl;
return 0;
}

在vs2015中,copy函数第三个参数为std::begin(a2)时编译错误。
用g++编译是,copy函数第三个参数为std::begin(a2)或者a2都可以。这是什么原因
...全文
196 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 版主 2016-11-29
  • 打赏
  • 举报
回复
试下:项目属性——配置属性——C/C++——SDL检查——否
  • 打赏
  • 举报
回复
VS2013关闭安全检查,可编译通过,运行正常。


http://stackoverflow.com/questions/19079482/error-c4996-std-copy-impl-function-call-with-parameters-that-may-be-unsafe
这里有个讨论
成长记情 2016-11-29
  • 打赏
  • 举报
回复
求解答。begin(a2)和a2不都是数组的首地址的值吗?难道是c++的什么标准吗

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧