Is it consistent to name static functions according to a slightly different convention (leading cap vs leading lower case)? I would think that explicitly qualifying the class type name would be a sufficient syntactic differentiation. ReflectionDatabase::GetDatabase() vs ReflectionDatabase::getDatabase(). I think we should keep the leading cap only for global functions, otherwise we should just bite the bullet and change the naming convention across the codebase somehow. Point being, all functions within a class should probably be named according to the same conventions for consistency across generated bindings. It doesn't make much sense in C# that the only difference between GetDatabase and getDatabase is that one of the two functions binds to a native static member function and the other binds to a regular member function taking a class instance as its first parameter.