Thanks,

Wouln't it be possible to only add the magic in boost/mpi/config.hpp ? (which is supposed to be included everywhere in boost MPI)

Maybe something along the line of:
#ifdef BOOST_MSVC
#define _SCL_SECURE_NO_WARNINGS
#endif

?

On 25/05/2015 18:21, Thomas Trummer wrote:

On 25.05.2015, at 17:52, Alain Miniussi <[email protected]> wrote:

Just out of curiosity (I do not have access Microsoft Compiler) what are these 
warnings about ?

Ten years ago Microsoft identified C and C++ library functions that are prone 
to security problems like buffer overruns (e.g. strcpy) and provided secure 
alternatives. The compiler will warn you when you use an old, insecure 
function. While this is in general not a bad idea it’s also inherently not 
portable: https://msdn.microsoft.com/en-us/library/8ef0s5kh.aspx

Here is an example of a warning:

all_gather_test.cpp
..\libs\mpi\test\all_gather_test.cpp(67) : warning C4305: 'argument' : 
truncation from 'double' to 'float'
C:\Programme\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(2227) : warning 
C4996: 'std::_Copy_impl': 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:\Programme\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(2212) : 
see declaration of 'std::_Copy_impl'
         C:\boost\develop\boost_root\boost/mpi/collectives/gather.hpp(65) : see 
reference to function template instantiation '_OutIt std::copy<const 
T*,T*>(_InIt,_InIt,_OutIt)' being compiled
         with
         [
             _OutIt=value_type *,
             T=value_type,
             _InIt=const value_type *
         ]
         C:\boost\develop\boost_root\boost/mpi/collectives/gather.hpp(124) : see 
reference to function template instantiation 'void 
boost::mpi::detail::gather_impl<T>(const boost::mpi::communicator &,const T 
*,int,T *,int,boost::mpl::false_)' being compiled
         with
         [
             T=value_type
         ]
         C:\boost\develop\boost_root\boost/mpi/collectives/all_gather.hpp(43) : see 
reference to function template instantiation 'void boost::mpi::gather<T>(const 
boost::mpi::communicator &,const T *,int,T *,int)' being compiled
         with
         [
             T=value_type
         ]
         C:\boost\develop\boost_root\boost/mpi/collectives/all_gather.hpp(68) : see 
reference to function template instantiation 'void 
boost::mpi::detail::all_gather_impl<T>(const boost::mpi::communicator &,const T 
*,int,T *,boost::mpl::false_)' being compiled
         with
         [
             T=value_type
         ]
         C:\boost\develop\boost_root\boost/mpi/collectives/all_gather.hpp(61) : see 
reference to function template instantiation 'void boost::mpi::all_gather<T>(const 
boost::mpi::communicator &,const T *,int,T *)' being compiled
         with
         [
             T=value_type
         ]
         ..\libs\mpi\test\all_gather_test.cpp(40) : see reference to function template instantiation 
'void boost::mpi::all_gather<value_type>(const boost::mpi::communicator &,const T 
&,std::vector<_Ty> &)' being compiled
         with
         [
             T=value_type,
             _Ty=value_type
         ]
         ..\libs\mpi\test\all_gather_test.cpp(105) : see reference to function template 
instantiation 'void all_gather_test<string_generator>(const 
boost::mpi::communicator &,Generator,const char *)' being compiled
         with
         [
             Generator=string_generator
         ]
C:\Programme\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(2227) : warning 
C4996: 'std::_Copy_impl': 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:\Programme\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(2212) : 
see declaration of 'std::_Copy_impl'
         C:\boost\develop\boost_root\boost/mpi/collectives/gather.hpp(65) : see 
reference to function template instantiation '_OutIt std::copy<const 
T*,T*>(_InIt,_InIt,_OutIt)' being compiled
         with
         [
             _OutIt=value_type *,
             T=value_type,
             _InIt=const value_type *
         ]
         C:\boost\develop\boost_root\boost/mpi/collectives/gather.hpp(124) : see 
reference to function template instantiation 'void 
boost::mpi::detail::gather_impl<T>(const boost::mpi::communicator &,const T 
*,int,T *,int,boost::mpl::false_)' being compiled
         with
         [
             T=value_type
         ]
         C:\boost\develop\boost_root\boost/mpi/collectives/all_gather.hpp(43) : see 
reference to function template instantiation 'void boost::mpi::gather<T>(const 
boost::mpi::communicator &,const T *,int,T *,int)' being compiled
         with
         [
             T=value_type
         ]
         C:\boost\develop\boost_root\boost/mpi/collectives/all_gather.hpp(68) : see 
reference to function template instantiation 'void 
boost::mpi::detail::all_gather_impl<T>(const boost::mpi::communicator &,const T 
*,int,T *,boost::mpl::false_)' being compiled
         with
         [
             T=value_type
         ]
         C:\boost\develop\boost_root\boost/mpi/collectives/all_gather.hpp(61) : see 
reference to function template instantiation 'void boost::mpi::all_gather<T>(const 
boost::mpi::communicator &,const T *,int,T *)' being compiled
         with
         [
             T=value_type
         ]
         ..\libs\mpi\test\all_gather_test.cpp(40) : see reference to function template instantiation 
'void boost::mpi::all_gather<value_type>(const boost::mpi::communicator &,const T 
&,std::vector<_Ty> &)' being compiled
         with
         [
             T=value_type,
             _Ty=value_type
         ]
         ..\libs\mpi\test\all_gather_test.cpp(106) : see reference to function template 
instantiation 'void all_gather_test<string_list_generator>(const 
boost::mpi::communicator &,Generator,const char *)' being compiled
         with
         [
             Generator=string_list_generator
         ]
_______________________________________________
Boost-mpi mailing list
[email protected]
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi



--
---
Alain
_______________________________________________
Boost-mpi mailing list
[email protected]
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi

Reply via email to