Guard asm from host compiler
Workaround MSVC's issue with use of "typename"
Workaround MSVC issue with use of "typename"