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?
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.
> Joel de Guzman
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk