C++14の標準規格は、無事制定された。そこで、C++14に正式に入ることが確定した新機能を、解説していこうと思う。
今回は、手始めに2進数リテラルを解説する。
2進数リテラルとは、C++14に追加された新しい整数リテラルである。その文法と意味は、文章で解説するよりも、コードを読んだほうが理解が早いだろう。
int main()
{
int a = 0b11 ; // 3
int b = 0B11 ; // 3
int c = 0b1111 ; // 15
int d = 0b1011 ; // 11
}
これまで、C++の整数リテラルには、8進数、10進数、16進数があったが、新しく2進数リテラルが追加された。
文法は、0b、もしくは0Bに続けて、0か1が連続する。
2進数リテラルは、ビット列演算などをするソースコードをわかりやすく記述するのに役立つ。
主要コンパイラーの対応状況であるが、GCCは独自拡張として、4.3から2進数リテラルをサポートしている。GCC 4.9で正式にC++標準規格としても有効になるように変更された。ClangはGCCより後発で、GCCとの互換性のためにGCCの独自拡張も多く実装しているため、当初から2進数リテラルはサポートしてる。
GCCのC++14実装状況: C++1y/C++14 Support in GCC - GNU Project - Free Software Foundation (FSF)
ClangのC++14実装状況: Clang - C++1z, C++14, C++11 and C++98 Status
ドワンゴ広告
この記事はドワンゴ勤務中に書かれた。
ドワンゴは本物のC++プログラマーを募集しています。
CC BY-ND 4.0: Creative Commons — Attribution-NoDerivatives 4.0 International — CC BY-ND 4.0
VC使いです。
ReplyDelete現在二進数を記述するときは、自分の頭が残念なので指で計算して16進数で記述しています。それが改善されるのは非常に!非常に!!ありがたいです。