Hi,
I recently tried compiling the example program included in the Armadillo Template Linear Algebra library (version 7.400) using the 2017 Intel C++ compiler which was recently released. I got a warning message which I passed onto the Armadillo developer and he has confirmed it is a false positive. I can also confirm that the message is not displayed when the same example is compiled using either clang++ (version 3.8.0) or g++ (version 5.3.0) using MinGW-w64. Note, the code does compile and the output produced matches the output from the other two compilers.
My set up is Windows 7 SP1 x64 using Visual Studio 2015 Community Update 3 and compiling via the Intel64 command prompt short cut.
The warning message is below:
example.cpp C:\Libs\Armadillo\Include\armadillo_bits/arma_ostream_meat.hpp(95): warning #173: floating-point value does not fit in required integral type cond_rel< is_non_integral<eT>::value && is_signed<eT>::value >::geq(val, eT(-1e-4)) ^ detected during: instantiation of "std::streamsize={_Longlong={__int64}} arma::arma_ostream::modify_stream(std::ostream &, const eT *, arma::uword={arma::u32={unsigned int}}) [with eT=arma::u32={unsigned int}]" at line 413 instantiation of "void arma::arma_ostream::print(std::ostream &, const arma::Mat<eT> &, bool) [with eT=arma::u32={unsigned int}]" at line 6031 of "C:\Libs\Armadillo\Include\armadillo_bits/Mat_meat.hpp" instantiation of "void arma::Mat<eT>::impl_print(const std::string &) const [with eT=arma::u32={unsigned int}]" at line 37 of "C:\Libs\Armadillo\Include\armadillo_bits/Base_meat.hpp" instantiation of "void arma::Base<elem_type, derived>::print(std::string) const [with elem_type=arma::u32={unsigned int}, derived=arma::Mat<arma::u32={unsigned int}>]" at line 129 of "example.cpp" Microsoft (R) Incremental Linker Version 14.00.24210.0 Copyright (C) Microsoft Corporation. All rights reserved.
Thanks,
Luke
Thread Topic:
Bug Report