Managed Applications and Unmanaged Functions
By default, all files using the /clr compiler option are compiled to managed code. Because Managed Extensions for C++ depends on a managed heap, certain C++ keywords and constructs are not suitable for use in managed code. For instance, usage of the __asm keyword within a function forces the compilation of the entire function to native code.
For a complete list of cases where unmanaged code is generated automatically, see 24.1 Effects of the /clr Switch.