I didn't know that C and C++ allow multicharacter literal: not 'c' (of type int in C and char in C++), but 'tralivali' (of type int!)
enum { ActionLeft = 'left', ActionRight = 'right', ActionForward = 'forward', ActionBackward = 'backward' }; Standard says:
C99 6.4.4.4p10: "The value of an integer character constant containing more than one character (e.g., 'ab'), or containing a character or escape sequence that does not map to a single-byte execution character, is implementation-defined."
I found they are widely used in C4 engine. But I suppose they are not safe when we are talking about platform-independent serialization. Thay can be confusing also because look like strings. So what is multicharacter literals scope of usage, are they useful for something? Are they in C++ just for compatibility with C code? Are they considered to be a bad feature as goto operator or not?
gotoisn't a bad feature; at least in C. It's far more useful than multicharacter literals.int id='MYCP';Apple would tell you your developer ID as a character literal rather than just a boring old int.0, breaking your code.