boost::make_function_output_iterator报错: C4996
用VS2013运行boost::make_function_output_iterator的官方例子:
https://www.boost.org/doc/libs/1_68_0/libs/iterator/doc/function_output_iterator.html
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
struct string_appender{ string_appender(std::string& s) : m_str(&s) {} void operator()(const std::string& x) const { *m_str += x; } std::string* m_str;};int main(int, char*[]){ std::vector<std::string> x; x.push_back("hello"); x.push_back(" "); x.push_back("world"); x.push_back("!"); std::string s = ""; std::copy(x.begin(), x.end(), boost::make_function_output_iterator(string_appender(s))); std::cout << s << std::endl; return 0;} |
结果报如下的编译错误:
|
1
|
Error 1 error C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 2132 1
|
[解决方法]
加入预处理器(项目属性----C/C++----预处理----预处理器定义):
_SCL_SECURE_NO_WARNINGS
[分析]
这个编译错误是由于vc++的checked iterators规则(https://msdn.microsoft.com/en-us/library/aa985965.aspx), 加入_SCL_SECURE_NO_WARNINGS预处理器后, 编译会通过,然后将风险交给运行时,由于boost库比较完善,所以这种风险应该不存在.
把链接中的Checked iterators内容拷贝如下:
Checked IteratorsVisual Studio 2015
Other Versions
Checked iterators ensure that the bounds of your container are not overwritten. Checked iterators apply to both release builds and debug builds. For more information about how to use debug iterators when you compile in debug mode, see Debug Iterator Support. For information about how to disable warnings that are generated by checked iterators, see _SCL_SECURE_NO_WARNINGS. You can use the _ITERATOR_DEBUG_LEVEL preprocessor macro to enable or disable the checked iterators feature. If
When
When
A checked iterator refers to an iterator that will call checked_array_iterator Class and unchecked_array_iterator Class are the iterator adaptors that support checked iterators. When you compile by using // checked_iterators_1.cpp This program prints "67" then pops up an assertion failure dialog box with additional information about the failure. Similarly, when you compile by using // checked_iterators_2.cpp This program pops up an assertion failure dialog box with additional information about the failure. The following code demonstrates various iterator use-case scenarios with comments about each. By default, // checked_iterators_3.cpp When you compile this code by using algorithm(1026) : warning C4996: 'std::_Transform1': Function call with parameters When run at the command line, the executable generates this output: v: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
boost::make_function_output_iterator报错: C4996的更多相关文章
- boost pool_allocator 报错 'rebind'
#include "stdafx.h" #include <vector> #include <boost/pool/pool.hpp> int _tmai ...
- 在Visual Studio 2019中使用scanf报错C4996解决办法
错误警告信息 错误C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To ...
- C++解决error C4996报错
今天用c++写了个数独程序,在编译过程中报了一个错误: 1>------ 已启动生成: 项目: sudoku, 配置: Debug Win32 ------1> main.cpp1> ...
- GCC 高版本7.4 编译链接 boost 报错 boost::thread::XXX’未定义的引用 解决方法
背景:开发中的项目之前一直用GCC4.8,boost库1.48版本的开发环境.现在因业务需求,需要更换GCC7.4,boost库1.70. 问题:可以正常编译BOOST的链接库文件,但是链接时候报错. ...
- 16061701(地图灯光编译Beast报错)
[目标] 地图灯光编译报错 [思路] 1 我自己测c2_cwd_rt 附件为当时log 2 ExampleGame\BeastCache\PersistentCache 3 重新删除掉BeastCac ...
- caffe ubuntu16安装报错和程序总结
我最近安装安装了老版本的caffe,安装过程真是两个字"想死",所以我的错误一般都是比较经典的. 我是使用cuda的版本,所以可能会出现undefined refference t ...
- caffe编译报错解决
添加ssd中的一些层之后,编译报错: ../lib/libcaffe.so.1.0.0-rc5:对‘boost::match_results<__gnu_cxx::__normal_iterat ...
- 【PaddlePaddle系列】报错解决方法合集 (不定时更新)
1.PaddlePaddle使用CPU时正常运行,但是使用GPU时却报出一堆错误信息,节选如下: paddle.fluid.core.EnforceNotMet: enforce allocating ...
- 。。。。。。不带http https : 不报错 spring boot elasticsearch rest
......不带http https : 不报错 先telnet http://onf:8080/getES653/道路桥梁正在“理疗”%20这14条道路纳入市政中修 @GetMapping(&qu ...
随机推荐
- 数学建模:1.概述& 监督学习--回归分析模型
数学建模概述 监督学习-回归分析(线性回归) 监督学习-分类分析(KNN最邻近分类) 非监督学习-聚类(PCA主成分分析& K-means聚类) 随机算法-蒙特卡洛算法 1.回归分析 在统计学 ...
- Linux下C语言的文件操作
代码: #include <stdio.h> #include <string.h> #include <fcntl.h> /*************基本的函数A ...
- tp5参数绑定
关闭路由后的普通模式任然可以通过操作方法的参数绑定.控制器和空操作等特性实现url地址的简化 参数绑定(默认是按名称成对解析,): namespace app\index\Controller; cl ...
- Kmeans:利用Kmeans实现对多个点进行自动分类—Jason niu
import numpy as np def kmeans(X, k, maxIt): numPoints, numDim = X.shape dataSet = np.zeros((numPoint ...
- HDU 5409 CRB and Graph 【点双连通+DFS】
<题目链接> 题目大意: 给你一个连通的无向图,问你删除每一条边后,是否能够出现一对(u,v),使得u,v不连通,且u<v,如果有多对u,v,则输出尽量大的u,和尽量小的v. 解题分 ...
- shiro学习总结(一)----初识shiro
本系列内容大多总结自官网和张开涛的<跟我学Shiro> 一.shiro简介 1.1.shiro有什么用? shiro是一个功能强大使用简单的java安全框架,主要提供了五大功能: 1.认证 ...
- MVC面试问题与答案
读这篇文章不意味着你一定要去并且能搞定MVC面试.这篇文章的目的是在面试之前让你快速复习MVC知识.这篇文章也不是MVC培训课程. 如果你想学习MVC,从这儿开始 Learn MVC ( Model ...
- java发送邮件高级篇
package com.xiets.javamaildemo; import java.util.Date; import java.util.Properties; import javax.act ...
- 纯CSS实现展开列表
效果预览 以下为源码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...
- 理解Hadoop脚本hadoop-2.5.0/bin/hadoop
1 #!/usr/bin/env bash 此处为什么不是 #!/bin/bash ? 考虑到程序的可移植性,env的作用就是为了找到正确的脚本解释器(这里就是bash),在不同的Linux ...
Important