$include_dir="/home/hyper-archives/geometry/include"; include("$include_dir/msg-header.inc") ?>
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?
https://gist.github.com/1852693 (most recent version)
Thanks,
Mats
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]
> http://listarchives.boost.org/mailman/listinfo.cgi/geometry