C ++ многозначный литерал
Я не знал, что C и C ++ позволяютmulticharacter literal
: не 'c' (типаИНТ в С иголец в C ++), но 'tralivali' (типаИНТ!)
enum
{
ActionLeft = 'left',
ActionRight = 'right',
ActionForward = 'forward',
ActionBackward = 'backward'
};
Стандарт говорит:
C99 6.4.4.4p10: "Значение целочисленной символьной константы, содержащей более одного символа (например, 'ab'), или содержащей символ или escape-последовательность, которая не отображается на однобайтовый символ выполнения, определяется реализацией «.
Я обнаружил, что они широко используются вДвигатель С4, Но я полагаю, что они небезопасны, когда мы говорим о независимой от платформы сериализации. Это может сбивать с толку и потому, что они выглядят как струны. Итак, какова область применения мультихарактерного литерала, полезны ли они для чего-то? Они в C ++ только для совместимости с кодом C? Они считаются плохой чертой, какидти к оператор или нет?