![]() |
Boost : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2006-07-04 17:42:53
Bronek Kozicki wrote:
> Tag is a type name recognized by compiler; you can declare it as many
> times and in as many locations as you wish. Important point about tag
> is that you have to declare it before you use it; compiler will
> enforce it. On the other hand, string is a literal; there is nothing
> compiler could check for you. Obviously, it means that while tags
> come with some coupling (although minimal - there is no need for
> "unified system" or "central location"), strings require no coupling
> at all.
I suspect there is something I'm missing. Let's use examples:
// file1
struct tag1;
set<tag1>();
// file2
struct tagl;
get<tagl>(); // NULL
How can the compiler know that you misspelled tag1 as tagl? It can't.
Boost list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk