The constructor filebufto which these flags are passed & dagger; has behavior based on those flags that are defined in table 132 in C ++ 11:
+-----------------------------------+-------------------+
| ios_base flag combination | stdio equivalent |
| binary in out trunc app | |
+-----------------------------------+-------------------+
| + | "w" |
| + + | "a" |
| + | "a" |
| + + | "w" |
| + | "r" |
| + + | "r+" |
| + + + | "w+" |
| + + + | "a+" |
| + + | "a+" |
+-----------------------------------+-------------------+
| + + | "wb" |
| + + + | "ab" |
| + + | "ab" |
| + + + | "wb" |
| + + | "rb" |
| + + + | "r+b" |
| + + + + | "w+b" |
| + + + + | "a+b" |
| + + + | "a+b" |
+-----------------------------------+-------------------+
As you can see, your flag combination is not found in this table.
[C++11: 27.9.1.4/2]:[..] If modeit is not any combination of flags shown in the table, then open does not work.
.
& dagger;[C++11: 27.9.1.7/2] [C++11: 27.9.1.11/2] , .