このプログラム考えてみましょう:VS2015との#pragma(無効:XXXX)が期待どおりに動作しません(スコープ号)
#include <string>
#include <boost/random.hpp>
int main(int argc, char *argv[])
{
return 0;
}
Compilexを、私はランダム\詳細\のpolynomial.hppファイル\ブーストから4996の警告を受けます。
d:\program files (x86)\microsoft visual studio 14.0\vc\include\xutility(2810): warning C4996: 'std::_Fill_n': 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'
d:\program files (x86)\microsoft visual studio 14.0\vc\include\xutility(2797): note: voir la déclaration de 'std::_Fill_n'
d:\dev\vobs_ext_2015\libcpp\boost\1.60.0\boost\random\detail\polynomial.hpp(114): note: voir la référence à l'instanciation de la fonction modèle '_OutIt std::fill_n<boost::random::detail::polynomial_ops::digit_t*,size_t,boost::random::detail::polynomial_ops::digit_t>(_OutIt,_Diff,const _Ty &)' en cours de compilation
with
[
_OutIt=boost::random::detail::polynomial_ops::digit_t *,
_Diff=size_t,
_Ty=boost::random::detail::polynomial_ops::digit_t
]
は、だから私は警告を無効にしてみました:
#pragma warning(push)
#pragma warning(disable: 4996) // disable warning coming from boost/random.hpp
#include <string>
#include <boost/random.hpp>
#pragma warning(pop)
int main(int argc, char *argv[])
{
return 0;
}
そして今、それがなくなって...なぜ私は:
#include <string>
#pragma warning(push)
#pragma warning(disable: 4996) // disable warning coming from boost/random.hpp
#include <boost/random.hpp>
#pragma warning(pop)
int main(int argc, char *argv[])
{
return 0;
}
警告が報告さ....その後、私が試したままプラグマのpush/popディレクティブ内に#include <string>
が必要ですか?
どのバージョンのBoost? –
@MarcusMüller:1.60。 – jpo38
警告を逐語で追加した場合は、本当に便利です –