Boost logo

Boost Users :

Subject: [Boost-users] [format] warning...warning...warning
From: Arnaud RICHARD (arnaud.richard_at_[hidden])
Date: 2017-03-23 08:45:02


Hello,
I'm a complete Boost newbie. I've been told very often that boost is the way to go for serious C++ coding, and I was not surprised to see such emphasis on the home page:
"We aim to establish "existing practice" and provide reference implementations so that Boost libraries are suitable for eventual standardization"

So when I used the format library on my existing (non-trivial) project and first compiled... I was very very surprised to get my neat compilation console flooded with hundreds of warnings !

I acknowledge I activate many many warnings:
CXXFLAGS+=-Wall -Wextra -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization \
          -Wformat=2 -Winit-self -Wlogical-op -Wmissing-include-dirs \
          -Wnoexcept -Woverloaded-virtual -Wredundant-decls -Wshadow \
          -Wsign-conversion -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 \
          -Wswitch-default -Wundef -Wunused

The warnings were as trivial as (for example):
../ext/boost/boost/type_traits/is_default_constructible.hpp:16:22: warning: "BOOST_GCC_VERSION_WORKAROUND_GUARD" is not defined [-Wundef]
#if BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40700)

../ext/boost/boost/format/parsing.hpp:435:67: warning: conversion to 'std::vector<boost::io::detail::format_item<char, std::char_traits<char>, std::allocator<char> >, std::allocator<boost::io::detail::format_item<char, std::char_traits<char>, std::allocator<char> > > >::size_type {aka unsigned int}' from 'int' may change the sign of the result [-Wsign-conversion]
             string_type & piece = (cur_item==0) ? prefix_ : items_[cur_item-1].appendix_;

I understand they are only warning and the code is functionally correct and standard-wise correct.
Personally when I face such false warnings in my code, I change the code to remove the warning so that if a warning does make sense, I can notice it.

I thought a reference implementation would be written with such policy.
There's no way I'm gonna read each of the hundreds of messages to understand if it is a mistake in my source code or a "shortcut" in boost library.

So this is my first user experience. Not impressed at all. Boost will not be my reference.



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net