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? Они считаются плохой чертой, какидти к оператор или нет?

Ответы на вопрос(5)

Ваш ответ на вопрос