
Thanks for all the input. I posted a "modification" shortly after the original, noting that I was using types not integral constants, but I guess it did not make it out.
Yes, I saw that right after I posted my reply...
However, after reading the replies, the point I made in the "modification" seems to stand. All the documentation uses fully qualified names even when referring to types, which is misleading, and that is what I was trying to get at (though not very well). The rationale for doing so only mentions integral constants, but just about all the references in the documentation use fully qualified names for types as well. To me, the documentation is encouraging fully qualified names for everything.
Are you sure? I just searched the type traits docs and the integral-constant-expression white paper for " ::", and only found one occurance where a type was refered to with a leading ::. Even so, it's easy to be tripped up by this, and with luck I'm going to rewrite the type traits docs "real soon now", so I'll try and make this clearer.
Maybe the documentation should change? Maybe something should be added to say that the '::' is needed for integral constants only and using them for types is dangerous? Maybe I am the only one with this problem and I should just quietly go away ;->
Nope, feedback is always useful, John.