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 の例でも発生します(クールではありません)。
警告を損なうことなく実際に問題を解決するソリューションを提案できる人はいますか?