|
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