Submit Search
Upload
C++14 binary literals
•
1 like
•
4,913 views
Akira Takahashi
Follow
Report
Share
Report
Share
1 of 7
Download now
Download to read offline
Recommended
C++14 relaxing constraints on constexpr
C++14 relaxing constraints on constexpr
Akira Takahashi
C++14 variable templates
C++14 variable templates
Akira Takahashi
Executors and schedulers
Executors and schedulers
Akira Takahashi
Riverpodでテストを書こう
Riverpodでテストを書こう
Shinnosuke Tokuda
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
智啓 出川
オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話
京大 マイコンクラブ
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
Recommended
C++14 relaxing constraints on constexpr
C++14 relaxing constraints on constexpr
Akira Takahashi
C++14 variable templates
C++14 variable templates
Akira Takahashi
Executors and schedulers
Executors and schedulers
Akira Takahashi
Riverpodでテストを書こう
Riverpodでテストを書こう
Shinnosuke Tokuda
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
智啓 出川
オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話
京大 マイコンクラブ
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
智啓 出川
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
智啓 出川
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Shintarou Okada
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
ネットにおける多言語コミュニケーションの新展開
ネットにおける多言語コミュニケーションの新展開
SKword Co.,Ltd.
よいコード、わるいコード
よいコード、わるいコード
京大 マイコンクラブ
Cpp20 overview language features
Cpp20 overview language features
Akira Takahashi
Cppmix 02
Cppmix 02
Akira Takahashi
Cppmix 01
Cppmix 01
Akira Takahashi
Modern C++ Learning
Modern C++ Learning
Akira Takahashi
cpprefjp documentation
cpprefjp documentation
Akira Takahashi
C++1z draft
C++1z draft
Akira Takahashi
Boost tour 1_61_0 merge
Boost tour 1_61_0 merge
Akira Takahashi
Boost tour 1_61_0
Boost tour 1_61_0
Akira Takahashi
error handling using expected
error handling using expected
Akira Takahashi
Boost tour 1.60.0 merge
Boost tour 1.60.0 merge
Akira Takahashi
Boost tour 1.60.0
Boost tour 1.60.0
Akira Takahashi
Boost container feature
Boost container feature
Akira Takahashi
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
Akira Takahashi
Boost Tour 1_58_0
Boost Tour 1_58_0
Akira Takahashi
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructor
Akira Takahashi
More Related Content
Viewers also liked
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
智啓 出川
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
智啓 出川
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Shintarou Okada
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
ネットにおける多言語コミュニケーションの新展開
ネットにおける多言語コミュニケーションの新展開
SKword Co.,Ltd.
よいコード、わるいコード
よいコード、わるいコード
京大 マイコンクラブ
Viewers also liked
(7)
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
C++ マルチスレッド 入門
C++ マルチスレッド 入門
ネットにおける多言語コミュニケーションの新展開
ネットにおける多言語コミュニケーションの新展開
よいコード、わるいコード
よいコード、わるいコード
More from Akira Takahashi
Cpp20 overview language features
Cpp20 overview language features
Akira Takahashi
Cppmix 02
Cppmix 02
Akira Takahashi
Cppmix 01
Cppmix 01
Akira Takahashi
Modern C++ Learning
Modern C++ Learning
Akira Takahashi
cpprefjp documentation
cpprefjp documentation
Akira Takahashi
C++1z draft
C++1z draft
Akira Takahashi
Boost tour 1_61_0 merge
Boost tour 1_61_0 merge
Akira Takahashi
Boost tour 1_61_0
Boost tour 1_61_0
Akira Takahashi
error handling using expected
error handling using expected
Akira Takahashi
Boost tour 1.60.0 merge
Boost tour 1.60.0 merge
Akira Takahashi
Boost tour 1.60.0
Boost tour 1.60.0
Akira Takahashi
Boost container feature
Boost container feature
Akira Takahashi
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
Akira Takahashi
Boost Tour 1_58_0
Boost Tour 1_58_0
Akira Takahashi
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructor
Akira Takahashi
C++14 enum hash
C++14 enum hash
Akira Takahashi
Multi paradigm design
Multi paradigm design
Akira Takahashi
Start Concurrent
Start Concurrent
Akira Takahashi
Programmer mind
Programmer mind
Akira Takahashi
Boost.Study 14 Opening
Boost.Study 14 Opening
Akira Takahashi
More from Akira Takahashi
(20)
Cpp20 overview language features
Cpp20 overview language features
Cppmix 02
Cppmix 02
Cppmix 01
Cppmix 01
Modern C++ Learning
Modern C++ Learning
cpprefjp documentation
cpprefjp documentation
C++1z draft
C++1z draft
Boost tour 1_61_0 merge
Boost tour 1_61_0 merge
Boost tour 1_61_0
Boost tour 1_61_0
error handling using expected
error handling using expected
Boost tour 1.60.0 merge
Boost tour 1.60.0 merge
Boost tour 1.60.0
Boost tour 1.60.0
Boost container feature
Boost container feature
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
Boost Tour 1_58_0
Boost Tour 1_58_0
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructor
C++14 enum hash
C++14 enum hash
Multi paradigm design
Multi paradigm design
Start Concurrent
Start Concurrent
Programmer mind
Programmer mind
Boost.Study 14 Opening
Boost.Study 14 Opening
C++14 binary literals
1.
C++14 2進数リテラル 高橋 晶(Akira Takahashi) faithandbrave@longgate.co.jp 2013/10/26(土)
C++14規格レビュー勉強会
2.
はじめに • この発表は、C++14のコア言語に導入される予定の 「2進数リテラル (binary literals)」に関するレビュー資料です。 • 提案文書: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf • 日本語訳: https://dl.dropboxusercontent.com/u/1682460/translation/C%2B%2B14/ n3472_binary_literals.html
3.
概要 • EWG(Evolution Working Group)は、2012年10月に開催されたポート ランド会議にて、コア言語に2進数リテラルのサポートを追加することを 決定した。 • 2進数リテラルは、整数リテラルに0bもしくは0Bプレフィックスを付け る。 • • これはGCCとClangではだいぶ前から拡張機能としてサポートしている。 Java
7、Python、Dといった言語も、同じ構文を持っている。
4.
2つのプレフィックス • 0bと0Bに違いはない。(16進数リテラルの0x/0Xと一緒) • リテラルとして記述できるのは、0か1のみ。 int a =
0b1000; // a == 8 int b = 0B1000; // b == 8
5.
ユーザー定義リテラルのサポート • 他のすべての整数リテラルと同様、2進数リテラルはユーザー定義リテラ ルをサポートする。 #include <iostream> #include <string> #include
<bitset> std::string operator"" _binstr(unsigned long long x) { return std::bitset<8>(x).to_string(); } int main() { std::string x = 0b1000_binstr; std::cout << x << std::endl; // 00001000が出力される }
6.
この提案に含まれないもの • printf()での書式、およびIOstreamでのマニピュレータは、この提案に は含まれない。 • printf()はC言語互換ライブラリであり、C++のスコープ外。 • GCCでも2進数書式は定義されていない。 • IOstreamはLWG(Library Working Group)の作業であるため、まずはコ ア言語のサポートから。 • 2進数表記で出力したい場合は、std::bitsetクラスを使用すればよい。
7.
参照 • GCC http://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html • D言語 http://www.digitalmars.com/d/1.0/lex.html#Integer • Python http://docs.python.org/release/3.2.3/reference/ lexical_analysis.html#integerliterals • Java 7 http://docs.oracle.com/javase/7/docs/technotes/guides/language/ binary-literals.html
Download now