C++には、multicharacter literalというものが存在する。これはCharacter literalの一種で、多くのC++プログラマは知らないであろうし、また、知らなくても、問題はない仕様である。
C++03において、普通のプログラマが知っているべきCharacter literalsは以下の通り。
// ordinary character literal char a = 'a' ; // wide-character literal wchar_t b = L'b' ;
実は、character literalは、もう一種類、存在する。それが、multicharacter literalである。
// multicharacter literal int x = 'abc' ;
このように、シングルクオート(single quote)で囲んだ、複数の文字は、multicharacter literalになる。その型は、intである。その値は、実装依存(implementation defined)な値である。
一体、このmulticharacter literalが、なんの役に立つのか、私には分からない。なぜなら、値は実装依存なので、コンパイラ間で値が同じだという保証はない。第一、すべてのmulticharacter literalに対して、同じ値を返すコンパイラがあったとしても、規格準拠だと思われる。不思議不思議。
http://developer.apple.com/documentation/MusicAudio/Reference/CoreAudioDataTypesRef/Reference/reference.html#//apple_ref/doc/uid/TP40004488-CH4-SW3こんなふうに使われてたりします。
ReplyDeleteそのうち管理に困りそうな気もするんですが…。