zoukankan      html  css  js  c++  java
  • Compiler Error: Function call with parameters that may be unsafe

    如下的代码:

    #include <stdio.h>

    #include <string>

    #include <algorithm>

    #include <cassert>

    #include <cctype>

    #include <boost/algorithm/string.hpp>

    int main(int argc, char *argv[])

    {

                    char song[17] = "Book of Taliesyn";

                    boost::to_upper(song);

                    assert(std::string(song) == "BOOK OF TALIESYN");

                   

                    return 0;

    }

    编译的时候报错:

    Error      1              error C4996: 'std::_Transform1': 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.0vcincludealgorithm           1026       1              Test13

    [分析]

    1. 搜索到如下的文章:

    https://stackoverflow.com/questions/903064/compiler-error-function-call-with-parameters-that-may-be-unsafe

    The warning is telling you that you risk a buffer overflow if n is too large -- which you know can't happen because of the way you just computed with a min, but the poor commpiler doesn't. I suggest you take the compiler's own advice and use -D_SCL_SECURE_NO_WARNINGS for this one source file...

    1. 关于如何修复: https://stackoverflow.com/questions/25046829/what-does-use-d-scl-secure-no-warnings-mean

    -D is a command line compiler flag which causes the rest of the text to be treated as if there was a #define in your code.

    In solution explorer, right click the project, select "properties". The project property page will open. Expand the ">C/C++" entry in the tree on the left and select "Preprocessor" under that. The top entry in the right pane should be "Preprocessor Definitions". In that edit box, add _SCL_SECURE_NO_WARNINGS, separating it from the other entries with a ;

    [解决]

     

    加上这个宏定义后,就编译通过了.

  • 相关阅读:
    sharepoint 2013 configure my site
    格式化xml
    斗罗大陆
    spring的beans.xml的配置
    jdom学习:读取xml文件
    java中加载xml文件方法
    struts2中IOC控制反转应用
    struts2.xml的配置与技巧
    struts2中的路径问题
    struts.xml详细配置
  • 原文地址:https://www.cnblogs.com/time-is-life/p/9359563.html
Copyright © 2011-2022 走看看