> 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

Reply via email to