[mlpack-git] [mlpack] Reduce (or fix) warnings when compiling with Visual Studio (#554)

Ryan Curtin notifications at github.com
Mon Mar 7 15:22:51 EST 2016


When mlpack is built with Visual Studio, there are tons and tons of warnings; for instance, see this output:
https://ci.appveyor.com/project/mlpack/mlpack

A snippet of warnings:

```
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/discrete_distribution.hpp(55): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/discrete_distribution.hpp(55): warning C4244: 'argument': conversion from 'const size_t' to 'const double', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/discrete_distribution.hpp(104): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/laplace_distribution.hpp(61): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/laplace_distribution.hpp(104): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/laplace_distribution.hpp(105): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/laplace_distribution.hpp(107): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/gaussian_distribution.hpp(47): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/gaussian_distribution.hpp(48): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/gaussian_distribution.hpp(49): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/gaussian_distribution.hpp(50): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/gaussian_distribution.hpp(185): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\core\dists\gaussian_distribution.cpp(102): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\core\dists\gaussian_distribution.cpp(110): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\core\dists\gaussian_distribution.cpp(162): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\core\dists\gaussian_distribution.cpp(163): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\core\dists\gaussian_distribution.cpp(181): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\core\dists\gaussian_distribution.cpp(182): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
c:\projects\mlpack\src\mlpack\core\data\load_arff_impl.hpp(47): warning C4129: '%': unrecognized character escape sequence [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/math/random.hpp(37): warning C4267: 'argument': conversion from 'size_t' to 'const arma::arma_rng::seed_type', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/discrete_distribution.hpp(55): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/discrete_distribution.hpp(55): warning C4244: 'argument': conversion from 'const size_t' to 'const double', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
C:\projects\mlpack\src\mlpack\..\mlpack/core/dists/discrete_distribution.hpp(104): warning C4267: 'argument': conversion from 'size_t' to 'const arma::uword', possible loss of data [C:\projects\mlpack\build\src\mlpack\mlpack.vcxproj]
```

Most of these errors will be from the same patterns throughout the code, so we should do what we can to fix them where possible.  At least for the conversion of `size_t` to `arma::uword`, I *think* that we should be able to guarantee that in general, `size_t` is an equivalent type to `arma::uword` (but maybe the compiler just isn't catching it), so we should be able to avoid making those casts explicit everywhere.

---
Reply to this email directly or view it on GitHub:
https://github.com/mlpack/mlpack/issues/554
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.cc.gatech.edu/pipermail/mlpack-git/attachments/20160307/b96d9628/attachment-0001.html>


More information about the mlpack-git mailing list