Identifiers with an underscore followed immediately by an uppercase letter
According to the C++ programming standard, identifier with an underscore followed immediately by an uppercase letter has to be avoided (page 20 of C++17 programming standard):
In addition, some identifiers are reserved for use by C++implementations
and shall not be used otherwise; no diagnostic is required.
—(3.1)Each identifier that contains a double underscore__or begins
with an underscore followed by an uppercase letter is reserved to
the implementation
for any use.
In the current implementation, as far as I could found, the only case is _S*
. The solution would be to change the class member names of _S*
. Personally, I prefer to use underscore as the prefix of the names of the class members.