Yes, these are completely different languages.
C ++ / CLI, in addition to the "ordinary" C ++, also contains managed (.NET-) types, and the associated keywords gcnew , ref class and the like.
C ++ / CLI is a binding language needed for advanced scenarios using native and managed code. You shouldn’t write big projects on it. If you need computations in C ++, and UI in .NET, in my experience, the easiest way to present this is in the form of three modules: pure native computation, UI in C #, and binding code in C ++ / CLI. Well, or native calculations can be packaged in a piece with C ++ / CLI, if you do not want as many as three modules.
In terms of compatibility, native C ++ code that is compiled by MS Visual Studio should also be compiled under C ++ / CLI with minimal changes. Check that you have no managed header anywhere in your native code.
windows.halready inс++11standard is? And under Linux how?) - pavel