This answer points to the reference material stating that you should not use two underscores followed by a capital letter.
Then there is this comment to this question, the first by @metal, that says you also cannot use such a name when creating include guards.
However, I'm curious then why Xcode does exactly that when it automatically creates include guards for new C++ files:
#ifndef __DataSource__File__
#define __DataSource__File__
#include <iostream>
#endif
This is the standard biolerplate that Xcode places at the top of a new C++ file; in this case, the project is named "DataSource". If the name of the project started with a digit, then Xcode would replace this digit with a third underscore.
If it's illegal for a user to write this, then isn't it illegal for Xcode to write this?