Boost logo

Boost :

From: Rozental, Gennadiy (gennadiy.rozental_at_[hidden])
Date: 2004-07-20 05:27:06

> Anyway, the technique I suggested, which we use in Spirit, is
> better than your trick of hoisting the names into namespace
> std which is a hack that should be avoided if there are other ways.

Why is it better?

Let's compare:

I. Hoisting the names into namespace std

- require ifdef/endif
+ names are fully qualified, that prevent possible ambiguity/invalid
function resolution (due to ADL for example)
- does not allow to use ADL
+ located in one place
+ promote uniformity of access to the symbols in std namespace (particularly
in a point on use, so I could see where this symbol came from)

II. Use using declaration on function level

+ doesn't require ifdef/endif
+ allows ADL usage
- unqualified name is a possible source of ambiguity/invalid function
- needs to be repeated in all functions that refer symbol
- may stand out from the rest of std symbols, potentially leading to

My personal preference is fully qualified reference everywhere. And I don't
see how other solution is any better.
> Regards,
> --
> Joel de Guzman



Boost list run by bdawes at, gregod at, cpdaniel at, john at