Boost logo

Boost :

From: Simonson, Lucanus J (lucanus.j.simonson_at_[hidden])
Date: 2008-05-08 02:47:58


Simonson, Lucanus J wrote:
>> template <typename geometry_type_1, typename geometry_type_2>
>> polygon_set_view operator&(const geometry_type_1& geo1,
>> const geometry_type_2& geo2) {
>> ...tag dispatching and so forth... }
>>
Steven Watanabe wrote:
>I hope that this is not the actual declaration. Completely generic
>operator overloads
>are dangerous.

There is no declaration yet, since I haven't finalized the design.

I was thinking that it could be solved by registering the geometry types
for which operator overloading is safe as operator args in the
geometry_traits.

template <>
geometry_traits<UserPolygonSet> {
        typedef polygon_set_concept geometry_concept;
        typedef UserPolygonSet operator_arg;
};

...

template <typename geometry_type_1, typename geometry_type_2>
polygon_set_view operator&(
  typename geometry_traits<geometry_type_1>::operator_arg const& geo1,
  typename geometry_traits<geometry_type_2>::operator_arg const& geo2);

Would this proposed solution address your concern about safety?

Is there another way to make it safe that you would suggest instead?

Thanks,
Luke


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk