Opened 13 years ago

Closed 12 years ago

#4131 closed Bugs (fixed)

Including boost/range/numeric.hpp causes compile errors without defining NDEBUG

Reported by: Naoki Yoshioka <yoshioka.naoki@…> Owned by: Neil Groves
Milestone: Boost 1.43.0 Component: range
Version: Boost Development Trunk Severity: Problem
Keywords: Cc:

Description

Although boost::inner_product in boost/range/numeric.hpp calls a function template boost::distance for static asserting, the header file has no statement to include boost/range/distance.hpp. Therefore, for example, the following code cannot be compiled without -DNDEBUG option.

// test.cpp
#include <boost/range/numeric.hpp>

int main()
{
  int array[3] = {0, 1, 2};
  boost::accumulate(array, 0);

  return 0;
}

The errors are as follows;

$ g++ --version
g++ (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ g++ test.cpp
In file included from test.cpp:1:
include/boost/range/numeric.hpp: In function ‘Value boost::inner_product(const 
SinglePassRange1&, const SinglePassRange2&, Value)’:
include/boost/range/numeric.hpp:59: error: ‘distance’ is not a member of ‘boost’
include/boost/range/numeric.hpp:59: error: ‘distance’ is not a member of ‘boost’
include/boost/range/numeric.hpp: In function ‘Value boost::inner_product(const 
SinglePassRange1&, const SinglePassRange2&, Value, BinaryOperation1, BinaryOperat
ion2)’:
include/boost/range/numeric.hpp:74: error: ‘distance’ is not a member of ‘boost’
include/boost/range/numeric.hpp:74: error: ‘distance’ is not a member of ‘boost’
$ g++ test.cpp -DNDEBUG

Change History (1)

comment:1 by Neil Groves, 12 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.