That must be C#, specific, I've never heard of transaction units in C++.
This is implementation specific, there are parallel compilers that compile multiple source files simultaneously and there are several commercial compilers that inline at link time. Visual Studio for one.Compilers compile one source at a time and don't look at what's in other transaction units untill linking. Since it is common practice for methods of a class to declare in their own source file, this effectively prevents non inline public and protected methods from being inlined if they are not declared as inline functions.
Which implies that this is no longer the case.Originally Posted by MSDN
Which confirms that this is the case.Originally Posted by MSDN