Boost logo

Boost :

From: walter_at_[hidden]
Date: 2001-08-27 13:31:23


--- In boost_at_y... <mailto:boost_at_y...>, Kresimir Fresl < fresl_at_g...
<mailto:fresl_at_g...>> (by way of Kresimir Fresl < )">fresl_at_g...>)
<mailto:fresl_at_g...> wrote:
>
> Hi,
>
> I am using gcc 3.0. Attempt to compile 'test11.cpp'
> (with -USE_GCC) results in more than a thousand lines of
> error messages and warnings.
 
Sorry, I didn't rebuild with GCC 2.95.2 for a while.

> Lots of them are caused by missing typenames
> in declarations of nested types.

MSVC and BCC don't complain :-(
 
> Furthermore, in exception.h:
>
> ../exception.h:28: looser throw specifier for `virtual const char*
>    numerics::divide_by_zero::what() const'
> /usr/include/g++-v3/exception:56:   overriding `virtual const char*
>    std::exception::what() const throw ()'
 
This one is new with GCC 3.0. But I think we can change it
accordingly for all supported compilers.
 
> But in compilation of test12.cpp and test13.cpp I stumbled upon
> an unsurmountable (at least for my knowledge) problem:
>
> /usr/include/g++-v3/bits/stl_iterator.h: In constructor
>    `std::__normal_iterator<_Iterator, _Container>::__normal_iterator
(const
>    std::__normal_iterator<_Iter, _Container>&) [with _Iter = const
float*,
>    _Iterator = float*, _Container = std::vector<float,
std::allocator<float>
>    >]':
> ../matrix.h:1067:   instantiated from `size_t numerics::matrix<T,
F,
> A>::iterator1::index1() const [...]'
> ../matrix.h:1055:   instantiated from `numerics::matrix<T, F,
A>::iterator2
> numerics::matrix<T, F, A>::iterator1::begin() [...]'
> ../matrix.h:438:   instantiated from `void
> numerics::matrix_assign<F>::operator()(M&, const
> numerics::matrix_expression<E2>&, numerics::dense_tag) [...]'
> ../matrix.h:589:   instantiated from `void
> numerics::matrix_assign<F>::operator()(M&, const
> numerics::matrix_expression<E2>&) [...]'
> ../matrix.h:745:   instantiated from `numerics::matrix<T, F,
A>::matrix(const
> numerics::matrix_expression<E1>&) [...]'
> ../matrix.h:816:   instantiated from `numerics::matrix<T, F, A>&
> numerics::matrix<T, F, A>::operator=(const
numerics::matrix_expression<E1>&)
> [...]'
> test12.cpp:40:   instantiated from `void test_my_matrix_vector<V,
M,
> N>::operator()(VP&, VP&, MP&) const [...]'
> test12.cpp:63:   instantiated from `void test_my_matrix_vector<V,
M,
> N>::operator()() const [...]'
> test12.cpp:127:   instantiated from here
> /usr/include/g++-v3/bits/stl_iterator.h:474: cannot convert `const
float*
>    const' to `float*' in initialization
>
> (And there were three similar error messages for double*,
> complex<float>* and complex<double>*).
 
Iterators are a known issue for ublas and GCC. They are the reason
for compiling with the GCC switch -pedantic. I'll have to investigate
this.
 
Regards
 
Joerg


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