C++ Primer says:

> 
> The identifier we define in our programs may not contain 2 consecutive
>  underscores, nor can identifier begin with an underscore followed
>  immediately by an uppercase letter. In addition, identifiers be fined
>  outside of a function may not begin with an underscore
> 
> 
> 

All is well, but

```
int _c = 55;                  // outside function starts with _

int main () {

    int _A = 12;              // _ followed by uppercase letter
    cout << _A << endl;

    int __b__ =33;            // 2 consecutive __
    cout << __b__ << endl;

    cout << _c << endl;

}

```

**Code above compiles perfectly fine** on mac, `g++ 4.7.1`, using the following flags

```
g++ -pedantic -Wall -Werror -std=c++11 -O3 -funroll-loops -fprefetch-loop-arrays

```

What am i missing please?