Numeric Interval failing with __USE_ISOC99 environment (plus fix)

I am just testing Boost uBLAS and Interval on an X86_64 architecture machine. The compilation environment (GCC on Linux) is defining __USE_ISOC99, and not __i386__ which seems reasonable! Looking at 'hw_rounding.hpp'' I have confirmed that on this environment the following code branch is being taken. # include <boost/numeric/interval/detail/c99_rounding_control.hpp> With this setup 'test_float.cpp' is failing badly when compiled with the following errors: In file included from /boost_CVS/boost /numeric/interval.hpp:18, from /boost_CVS/libs/ numeric/interval/test/test_float.cpp:11: /boost_CVS/boost/numeric/interval/rounding.hpp: In instantiation of `boost::numeric::interval_lib::save_state<boost::numeric::interval_lib::rounded_arith_opp<float, boost::numeric::interval_lib::rounding_control<float> > >': /boost_CVS/boost/numeric/interval/hw_rounding.hpp:40: instantiated from here /boost_CVS/boost/numeric/interval/rounding.hpp:78: error: no type named `rounding_mode' in `struct boost::numeric::interval_lib::rounded_arith_opp<float, boost::numeric::interval_lib::rounding_control<float> >' /boost_CVS/boost/numeric/interval/rounding.hpp: In instantiation of `boost::numeric::interval_lib::save_state<boost::numeric::interval_lib::rounded_arith_opp<double, boost::numeric::interval_lib::rounding_control<double> > >': /boost_CVS/boost/numeric/interval/hw_rounding.hpp:45: instantiated from here etc.. Could it be that 'struct c99_rounding_control' should be inheriting from 'c99_rounding'. This seems to fix the problem although I am not sure it is the correct solution! Michael ___________________________________ Michael Stevens Systems Engineering Navigation Systems, Estimation and Bayesian Filtering http://bayesclasses.sf.net ___________________________________
participants (1)
-
Michael Stevens