http://llvm.org/bugs/show_bug.cgi?id=18714

Reid Kleckner <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |WONTFIX

--- Comment #2 from Reid Kleckner <[email protected]> ---
(In reply to comment #1)
> Can you give some pointers on the nature of the token transformation?
> 
> Do you have a feel for the phases of token caching, instantiation and
> substitution that might be going on in MSVC?


First, I just want to say that I've been talked out of this approach since I
filed this bug, so I'm closing it.  :)

Answering your question, yes, they appear to do roughly what
-fdelayed-template-parsing does: they parse class template bodies, but they
slurp the tokens from C++ inline method definitions and parse them once they
are instantiated and referenced.  I believe you *need* to use typename with
MSVC when appropriate in a class template body outside of C++ inline methods.

The key difference is that method bodies are *never* parsed prior to
instantiation.  The template parameters are substituted with arguments before
parsing, so MSVC always knows if a nested-name-specifier is a type.

Basically, I've gotten the hang of recovering from missing 'typename' now, so I
don't think it will be that hard to handle this without token substitution.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to