Delen via


Compilerfout C3850

'char': een universal-character-name geeft een ongeldig teken aan

Opmerkingen

Tekens die als universele tekennamen worden weergegeven, moeten geldige Unicode-codepunten in het bereik 0-10FFFF vertegenwoordigen. Een universele tekennaam kan geen waarde bevatten in het Unicode-surrogaatbereik, D800-DFFF of een gecodeerd surrogaatpaar. De compiler genereert automatisch het surrogaatpaar vanaf een geldig codepunt.

In code die is gecompileerd als C, kan een universele tekennaam geen teken in het bereik 0000-009F vertegenwoordigen, inclusief, met de uitzonderingen van 0024 ('$'), 0040 ('@') en 0060 (''').'

In code die is gecompileerd als C++, kan een universele tekennaam elk geldig Unicode-codepunt gebruiken in een letterlijke teken of tekenreeks. Buiten een letterlijke waarde staat een universele tekennaam mogelijk niet voor een besturingselementteken in de bereiken 0000-001F of 007F-009F, zowel inclusief als lid van de basisbrontekenset. Zie Tekensets voor meer informatie.

Example

In het volgende voorbeeld wordt C3850 gegenereerd en ziet u hoe u dit kunt oplossen:

// 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
}