46 Stimmen

C++ Boost: Was ist die Ursache für diese Warnung?

Ich habe ein einfaches C++ mit Boost wie dieses:

#include <boost/algorithm/string.hpp>

int main()
{
  std::string latlonStr = "hello,ergr()()rg(rg)";
  boost::find_format_all(latlonStr,boost::token_finder(boost::is_any_of("(,)")),boost::const_formatter(" "));

Dies funktioniert gut; jedes Vorkommen von ( ) wird durch ein " " ersetzt.

Beim Kompilieren erhalte ich jedoch diese Warnung:

Ich verwende MSVC 2008, Boost 1.37.0.

1>Compiling...
1>mainTest.cpp
1>c:\work\minescout-feat-000\extlib\boost\algorithm\string\detail\classification.hpp(102) : warning C4996: 'std::copy': 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'
1>        c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2576) : see declaration of 'std::copy'
1>        c:\work\minescout-feat-000\extlib\boost\algorithm\string\classification.hpp(206) : see reference to function template instantiation 'boost::algorithm::detail::is_any_ofF<CharT>::is_any_ofF<boost::iterator_range<IteratorT>>(const RangeT &)' being compiled
1>        with
1>        [
1>            CharT=char,
1>            IteratorT=const char *,
1>            RangeT=boost::iterator_range<const char *>
1>        ]
1>        c:\work\minescout-feat-000\minescouttest\maintest.cpp(257) : see reference to function template instantiation 'boost::algorithm::detail::is_any_ofF<CharT> boost::algorithm::is_any_of<const char[4]>(RangeT (&))' being compiled
1>        with
1>        [
1>            CharT=char,
1>            RangeT=const char [4]
1>        ]

Ich könnte die Warnung natürlich deaktivieren, indem ich

-D_SCL_SECURE_NO_WARNINGS

aber ich zögere ein bisschen, das zu tun, bevor ich herausgefunden habe, was falsch ist, oder noch wichtiger, ob mein Code falsch ist.

1voto

sailfish009 Punkte 2206
  • Gehen Sie zu den Eigenschaften Ihres C++-Projekts

  • Erweitern Sie den Bereich "C/C++".

  • Erweitert: Bestimmte Warnungen deaktivieren: 4996

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X