Boost logo

Boost :

From: Aleksey Gurtovoy (alexy_at_[hidden])
Date: 2001-01-14 23:44:59


Hi Jeremy,

> If possible, I'd rather not make the VC++ workarounds part of the
> interface. I think it is possible to use the simpler
>
> is_associative<Domain, OP>::type
>
> and then do stuff along the lines of what you suggested *inside*
> is_associative. I currently do this in the property_map class
> in the graph library.

I completely agree with the principle that compiler-specific workarounds
should not affect the quality and usability of the interface. But when one can
choose between two interfaces that are reasonably equivalent in these
characteristics, and if one of the interfaces does allow more portable and
straightforward implementation, then may be it is worth considering. I felt
like the 'is_associative' case can be classified to this category, because (a)
I find both forms nearly equivalent in quality (hmm.. I wonder how I define
this one :) and usability, ignoring the fact that my form is slightly longer
to write ;) and (b) I think that hiding 'is_associative' name behind the scope
of 'algebraic_traits' template is a good thing; may be that's only me, but I
am inclined to think that sometimes we pollute 'boost' namespace by the names
that should better be inside nested scopes; so that's from where my suggestion
goes :).

--Aleksey


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