Boost logo

Geometry :

Subject: Re: [geometry] Using Boost.Geometry with a legacy class hierarchy
From: Mats Taraldsvik (mats.taraldsvik_at_[hidden])
Date: 2012-03-07 08:17:45

Hi Barend,

I have tried to define a random access iterator, but I am getting a lot
of compiler errors, possibly related to iterator conversion or pointer
conversion, which I don't understand. Could you take a look? (most recent version)


On 02/22/2012 07:28 PM, Barend Gehrels wrote:
> Hi Mats,
> On 22-2-2012 12:53, Mats Taraldsvik wrote:
>> Ok, so even though I define the four "versions" of QPoint (QPoint
>> const*const, QPoint* const, QPoint const* and QPoint*),
>> Boost.Geometry can't properly handle/distinguish between the QPoint*
>> and QPoint const*?
> First: you don't have to provide traits for "const" versions, so
> ending with const. So the QPoint const* const is redundant.
> Second, you indeed *have* to provide traits for "const *" version
> because that is a different type.
> Boost.Geometry is using boost::remove_const to get the correct traits.
> But boost::remove_const<QPoint const*> does not remove the const
> (which is correct). boost::remove_const<QPoint const* const> correctly
> removes the last const and keeps the first.
> Maybe we can change our library by using something more sophisticated
> such as
> if (is_pointer) add_pointer(remove_const(remove_pointer))
> which should remove the need of the const specialization.
> We have to discuss that. The const version basically adds something
> nice too because it defines only the "get" in the traits, and not the
> "set".
>> I guess the only or best available workaround is to iterate through
>> the QPoint*, and return references to QPoint?
> I think so.
> Though (I add this again) I also got it (wkt streaming) working by
> modifying one line in Boost.Geometry, based on the pointer-version (my
> first answer).
>> I hope you can solve this. :) If you want to use the code as an
>> example of adapting legacy classes/objects in the documentation, I'll
>> be happy to write a few accompanying paragraphs. :)
> That is welcome!
> Thanks, Barend
> _______________________________________________
> Geometry mailing list
> Geometry_at_[hidden]

Geometry list run by mateusz at