sajty/ember — comment on commit bdf80d1bece1cc5512eebeb41a6e962b5c3b2557
File: src/services/input/Input.cpp line 189
By erikhjortsberg:

No, "friend" does not break encapsulation. That's a common misconception. See http://www2.research.att.com/~bs/bs_faq2.html#friend for example.

I don't think it's a good idea to sully your code because of deficiencies in UML.
And I don't either think it's a good idea to sully it because of bad support in MSVC.

The "friend" keyword is part of the C++ spec. It's been put into the language with the express intent of being used. Whenever it can be used, it's much preferred instead of using non-standard naming hacks.
MSVC runtime not using can probably be attributed to the historical bad support in MSVC for proper standard compliant C++ (though it has gotten much better in recent years).