Boost logo

Geometry :

Subject: Re: [geometry] Is "dimensions" signed or unsigned?
From: Barend Gehrels (barend_at_[hidden])
Date: 2014-09-22 17:33:17


Hi Patrick,

Patrick J. LoPresti wrote On 22-9-2014 23:20:
> Adam Wulkiewicz <adam.wulkiewicz_at_[hidden]> writes:
>
>> I fixed signed/unsigned comparison in index/.../is_valid in develop
>> branch.
> Thanks.
>
>> The problem with dimension<> metafunction is that the type of the
>> value depends on the traits defined for a Geometry. For all models in
>> Boost.Geometry int type is used but the user may define it as unsigned
>> or size_t, etc. So I'm guessing that we can't be fully consistent
>> here.
> Well, it could be consistent internally... But I see the point about
> user-defined types.

Agreed - we can do more there. We will take a note of that.

>
> In fact, that is my current problem :-). From
> core/coordinate_dimension.hpp:
>
> template <typename Geometry, int Dimensions>
> inline void assert_dimension()
> {
> BOOST_STATIC_ASSERT((
> boost::mpl::equal_to
> <
> geometry::dimension<Geometry>,
> boost::mpl::int_<Dimensions>
> >::type::value
> ));
> }
>
> For me, geometry::dimension<Geometry> is the dimension of my own type,
> which I made unsigned... So the "equal_to" comparison ultimately
> compares unsigned vs. signed, triggering the warning.
>
> Similar problems occur with the functions immediately below
> (assert_dimension_equal() etc.)
>
>> Of course if you think that something could be improved, not only this
>> issue, patches are more than welcome.
>> In case you didn't know, here is a tutorial:
>> https://github.com/boostorg/geometry/wiki/Contribution-Tutorial
> Great tutorial!
>
> I have taken a crack at fixing the signed/unsigned warnings from
> coordinate_dimension.hpp and sent the pull request.

Thanks for the quick PR!

Regards, Barend


Geometry list run by mateusz at loskot.net