0

VS2013 の次のコンパイラ警告メッセージから:

CL : 警告 : Boost.Signals はメンテナンスされなくなり、非推奨になりました。Boost.Signals2 に切り替えてください。この警告メッセージを無効にするには、 を定義しますBOOST_SIGNALS_NO_DEPRECATION_WARNING

boost::signalsコードを からにアップグレードしましたboost::signals2

現在、さらに多くの醜い警告が延々と続いていますが、これはほんの始まりにすぎません。

1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory(348): warning C4996: 'std::_Uninitialized_copy0': 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 12.0\VC\include\xmemory(333) : see declaration of 'std::_Uninitialized_copy0'
1>          C:\Dev\ThirdParty\Boost\include\boost-1_59\boost/signals2/detail/auto_buffer.hpp(191) : see reference to function template instantiation '_FwdIt std::uninitialized_copy<I,boost::shared_ptr<void>*>(_InIt,_InIt,_FwdIt)' being compiled
1>          with
1>          [
1>              _FwdIt=boost::shared_ptr<void> *
1>  ,            I=boost::shared_ptr<void> *
1>  ,            _InIt=boost::shared_ptr<void> *
1>          ]
1>          C:\Dev\ThirdParty\Boost\include\boost-1_59\boost/signals2/detail/auto_buffer.hpp(178) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer<boost::shared_ptr<void>,boost::signals2::detail::store_n_objects<10>,boost::signals2::detail::default_grow_policy,std::allocator<T>>::copy_rai<I,false>(I,I,boost::shared_ptr<void> *,const boost::integral_constant<bool,false> &)' being compiled
1>          with
1>          [
1>              T=boost::shared_ptr<void>
1>  ,            I=boost::shared_ptr<void> *
1>          ]

この以前に尋ねられた質問と他の多くの質問を見てきましたが、提案された唯一の解決策は警告を無効にすることです。ただし、それは大きなハンマーのアプローチです。上記の投稿で @heavy-rocker-dude が指摘したように、これは最も些細なブーストHello World の例でも発生します(クールではありません)。

警告を損なうことなく実際に問題を解決するソリューションを提案できる人はいますか?

4

0 に答える 0