"austern at apple dot com" <[EMAIL PROTECTED]> writes:

| So what to do about this? In principle, I think the answer is that
| builtin_function is doing something  wrong by calling
| builtin_function_1 twice, once for the global namespace and once for
| namespace std.  If we really must define all builtins in namespace
| std (what's the rationale?), then at least we should do it with a
| using-declaration instead of creating two entirely separate decls.
| This would help compile  

I believe what happened there is that it was an attempt to implement
the standard mandated semantics where names in <xxx.h> appears to be
using-declarations for names in <cxx> -- except that the actual
implementation gets everything wrong :-/

So the idea was that we get an artificial declaration in both :: and
std::.  If we actually write a decl in std::, that is it; same if we 
write it in ::.  Except that the artificial declaration in :: should
have been a using-declaration for the "real" artificial declaration in
std::.  And attributes and whatever should apply transparently to 
both -- because they have extern "C" language specification.  That is
what failed. 

-- Gaby

Reply via email to