Boost logo

Ublas :

From: Michael Stevens (mail_at_[hidden])
Date: 2005-07-14 02:00:03


On Thursday 14 July 2005 04:52, stone muxu wrote:
> I use the following defination, and it can't work:
>
> typedef std::complex<double> cplxdouble;
> typedef boost::numeric::ublas::matrix< cplxdouble > SFCplxMatrix;
>
> I was told that:
>
> d:\boost_1_32_0\boost\numeric\ublas\storage.hpp(315) :
> error C2300: 'std::complex<double>' : class does not have a destructor
> called '~value_type'
> d:\boost_1_32_0\boost\numeric\ublas\storage.hpp(314) : while compiling
> class-template member function
> 'void __cdecl boost::numeric::ublas::unbounded_array<class
> std::complex<double>,class std::allocator<class std::complex<double> >
>
> >::iterat
>
> or_destroy(class std
>
> and the error position at the following line, in file <storage.hpp> line
> 315.
>
> BOOST_UBLAS_INLINE
> static void iterator_destroy (iterator &i) {
> (&(*i)) -> ~value_type ();
> }
>
> I'm using Visual C++ 6.0 with SP5, Windows XP with SP2, boost_1_32_0.

I think you have run into a VC6 bug! I think there aremultiple issues related
to complex types in VC6. From personal experience, my strong recommendation
to you would be to switch compiler. There are so many bad code generation and
compiler crashes with VC6 that working with any reasonable sized project
becomes impossible.

If that is impossible for you then you could try taking the unbound_array
definition from Boost_1_31_0. That should at least fix the problem in
<storage.hpp>.

Michael
>
> can anybody help me?
>
> _________________________________________________________________
> 与联机的朋友进行交流,请使用 MSN Messenger: http://messenger.msn.com/cn

-- 
___________________________________
Michael Stevens Systems Engineering
34128 Kassel, Germany
Phone/Fax: +49 561 5218038
Navigation Systems, Estimation  and
                 Bayesian Filtering
    http://bayesclasses.sf.net
___________________________________