Boost logo

Boost :

From: Stephan T. Lavavej (stl_at_[hidden])
Date: 2005-07-27 02:59:50


Hi,

I have noted the following about Boost 1.32.0.

1. boost/token_iterator.hpp is very broken on line 34.

  template <class TokenizerFunc, class Iterator, class Type>
  class token_iterator
      : public iterator_facade<
            token_iterator<TokenizerFunc, Iterator, Type>
          , Type // ********** SHOULD READ: const Type
          , typename detail::minimum_category<
                forward_traversal_tag
              , typename iterator_traversal<Iterator>::type
>::type
          , const Type&
>

GCC 3.4.2 refuses to compile this when broken.

2. boost/format/format_implementation.hpp contains shadowing on line 28. The
constructor takes 'str', which is named identically to a member function.

3. boost/date_time/time_duration.hpp contains shadowing on line 53. The
constructor takes 'hours', 'minutes', and 'seconds', which are named
identically to member functions.

4. boost/date_time/time_system_counted.hpp contains shadowing on line 34.
The constructor takes 'tod', which is named identically to a member
function.

Shadowing makes using Boost with GCC -Wshadow difficult, and these cases are
very easy to fix.

5. libs/regex/build/gcc.mak mentions '-I../../../' twice. This breaks
compilation on MinGW. '-I../../..' ought to work everywhere (it does on
MinGW).

6. Suggestion: It would be useful if Boost.Format were capable of delayed
evaluation.

int main() {
    format mommy("%1% %1%");
    format kiddy("x%1%y");

    mommy % kiddy;
    kiddy % 10;

    cout << mommy << endl;
}

Thanks,
Stephan T. Lavavej


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk