Avoid using double underscore in your identifiers
Identifiers starting with __ (double underscore) are reserved for C/C++ implementations and standard libraries. Furthermore, C++ programs are transformed by the compiler (inline substitution, addition of this as an argument