Ошибка компилятора C3850
Char: универсальное имя-символ указывает недопустимый символ
Замечания
Символы, представленные универсальными именами символов, должны представлять допустимые кодовые точки Юникода в диапазоне 0–10FFFF. Универсальное имя символа не может содержать значение в суррогатном диапазоне Юникода (D800–DFFF) или закодированной суррогатной паре. Компилятор создает суррогатную пару из допустимой кодовой точки автоматически.
В коде, скомпилированном как C, универсальное имя символа не должно представлять символ в диапазоне 0000–009F включительно, за исключением символов 0024 ("$"), 0040 ("@") и 0060 ("`").
В коде, скомпилированном как C++, универсальное имя символа может использовать любую допустимую кодовую точку Юникода в строковом или символьном литерале. За пределами литерала универсальное имя символа не должно представлять управляющий символ в диапазонах 0000–001F или 007F–009F (включительно для обоих диапазонов) или элемент основной кодировки исходного кода. Дополнительные сведения см. в разделе Character Sets.
Пример
В следующем примере показано возникновение ошибки C3850 и приводятся сведения по ее устранению.
// C3850.cpp
int main() {
int \u0019 = 0; // C3850, not in allowed range for an identifier
const wchar_t * wstr_bad = L"\UD840DC8A"; // C3850, UCN is surrogate pair
const wchar_t * wstr_good = L"\U0002008A"; // Okay, UCN is valid code point
}