n3690の17.6.4.3.2によると Certain sets of names and function signatures are always reserved to the implementation: - Each name that contains a double underscore _ _ or begins with an underscore followed by an uppercase letter (2.12) is reserved to the implementation for any use. - Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace. と書かれていて、_小文字が安全かどうかは実装依存だよ。