SlideShare ist ein Scribd-Unternehmen logo
1 von 11
#1
この勉強会の概要・目的
• C++ MIXは、C++周辺の勉強会です
• C++に関する知見を共有する場なのはもちろんですが、
RustやGoといった他の言語・技術をC++プログラマが学ぶ場
にもしていきたいです
• 発表のみの場にならないよう、今後カジュアルな相談・議論を
する場にもしていきたいです
運営
• 高橋 晶 (me) cpp_akira@Twitter, faithandbrave@GitHub
• 著書『C++テンプレートテクニック』、『C++ポケットリファレン
ス』、『プログラミングの魔導書』シリーズなど
• C++日本語リファレンスサイトcpprefjp
• 岡田 真太郎 okdshin@Twitter
• 『Effective Modern C++』邦訳版の監修
• お手伝いメンバー
• おさかなさん (sakanazensen@Twitter)
• Flast (Flast_RO@Twitter)
会場注意
• Wi-Fiあります (ホワイトボード参照)
• ビルの1F出口は21時で閉まります。
B2Fから大手町駅、JR東京駅に行けます。
• 発表画面を、YouTubeでライブ配信します。映りたくない方は
カメラを避けてください
最近のC++
• 長い期間、C++の開発はC++98/C++03でやってきました
• 2011年にC++11が策定され、その後C++14、C++17と、
3年ごとに言語規格がアップデートされるようになりました
• 私たちは、非推奨になる機能、より開発しやすくなる機能を、
短いスパンで学んでいくことが必要となります
• また、C++のエコシステムも標準外でいろいろできています。
ビルドシステム (CMake)、パッケージマネージャ (Conan)、
テスト (Catch) などなど。
C++11
• C++03からのメジャーアップデートで、開発しやすくなる
言語機能と標準ライブラリが、いろいろ入りました
• ラムダ式、右辺値参照、範囲for文
• ハッシュ表、並行処理ライブラリ、スマートポインタ
• 「using std::cpp」というスペインのカンファレンスで調査し
た結果、C++03ユーザーが順調にC++11に移行していること
がわかっています
• (カンファレンス参加者層によるバイアスはあるでしょうが)
• https://usingstdcpp.org/2018/01/09/report-from-using-stdcpp-
2017/
C++14
• C++11に対するバグフィックス版として当初策定が進められて
いたのがC++14です
• 結局大きな機能がいろいろ入ったので、そういう立ち位置ではなくなり
ました
• C++11のより安定したバージョンということで、C++11を飛ば
して、C++03からC++14に移行するユーザーも多いようです
• 新機能
• 2進数リテラル、数値リテラルの桁区切り文字
• ラムダ式の初期化キャプチャ、ジェネリックラムダ
C++17
• C++14で入りきらなかった多くの機能が入りました
• インライン変数 (ヘッダファイルで変数定義できる)
• 構造化束縛 (多重代入)
• 式の評価順を規定
• if文/switch文での変数定義
• クラステンプレートのテンプレート引数推論
• ファイルシステムライブラリ、並列アルゴリズム、optional、variant、
any、数学特殊関数
次の標準C++20
• まだまだ策定が進められている最中ですが、多くの機能が予定
されています
• 宇宙船演算子 <=>
• コンセプト (制約テンプレート)
• 契約プログラミング
• 日付計算ライブラリ
• Rangeライブラリ
日本語情報の充実化
• cpprefjpでがんばってます
• ライブラリのリファレンスと、言語機能の差分
• ただこのサイトだけで、C++ユーザーのニーズ全ては
カバーしきれません
• 各バージョンごとの言語入門
• コンパイラやIDEの使い方
• 書き方のガイドライン
• デファクトスタンダードと言えるライブラリやツール
• 情報発信と共有をいっしょにしていきましょう!
#1

Weitere ähnliche Inhalte

Ähnlich wie Cppmix 01

オープンセミナー香川2012 LT
オープンセミナー香川2012 LTオープンセミナー香川2012 LT
オープンセミナー香川2012 LTKouta Imanaka
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutTsuubito Ishii
 
xUnitハンズオン第2回テキスト
xUnitハンズオン第2回テキストxUnitハンズオン第2回テキスト
xUnitハンズオン第2回テキストmizuky fujitani
 
Aizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous IntegrationAizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous IntegrationTomoaki Tamura
 
「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう中條 剛
 
xUnitハンズオン第3回テキスト
xUnitハンズオン第3回テキストxUnitハンズオン第3回テキスト
xUnitハンズオン第3回テキストmizuky fujitani
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようStudy Group by SciencePark Corp.
 
趣味プログラマの先輩からのアドバイス
趣味プログラマの先輩からのアドバイス趣味プログラマの先輩からのアドバイス
趣味プログラマの先輩からのアドバイスHiroaki Murayama
 
LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介
LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介
LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介Shoken Fujisaki
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方信之 岩永
 
TUT-LTで話したアレ(k3_kaimu)
TUT-LTで話したアレ(k3_kaimu)TUT-LTで話したアレ(k3_kaimu)
TUT-LTで話したアレ(k3_kaimu)Kazuki Komatsu
 

Ähnlich wie Cppmix 01 (20)

オープンセミナー香川2012 LT
オープンセミナー香川2012 LTオープンセミナー香川2012 LT
オープンセミナー香川2012 LT
 
Multi paradigm design
Multi paradigm designMulti paradigm design
Multi paradigm design
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer Workout
 
xUnitハンズオン第2回テキスト
xUnitハンズオン第2回テキストxUnitハンズオン第2回テキスト
xUnitハンズオン第2回テキスト
 
Aizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous IntegrationAizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous Integration
 
C#への招待
C#への招待C#への招待
C#への招待
 
「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう
 
xUnitハンズオン第3回テキスト
xUnitハンズオン第3回テキストxUnitハンズオン第3回テキスト
xUnitハンズオン第3回テキスト
 
Boost container feature
Boost container featureBoost container feature
Boost container feature
 
dwangocpp1-lt
dwangocpp1-ltdwangocpp1-lt
dwangocpp1-lt
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
 
趣味プログラマの先輩からのアドバイス
趣味プログラマの先輩からのアドバイス趣味プログラマの先輩からのアドバイス
趣味プログラマの先輩からのアドバイス
 
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作るGoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
 
C++ Now 2012 report
C++ Now 2012 reportC++ Now 2012 report
C++ Now 2012 report
 
LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介
LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介
LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介
 
rust primer
rust primerrust primer
rust primer
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方
 
TUT-LTで話したアレ(k3_kaimu)
TUT-LTで話したアレ(k3_kaimu)TUT-LTで話したアレ(k3_kaimu)
TUT-LTで話したアレ(k3_kaimu)
 
P4p20120408
P4p20120408P4p20120408
P4p20120408
 
Scala lang evolution
Scala lang evolutionScala lang evolution
Scala lang evolution
 

Mehr von Akira Takahashi

Mehr von Akira Takahashi (20)

Cpp20 overview language features
Cpp20 overview language featuresCpp20 overview language features
Cpp20 overview language features
 
Cppmix 02
Cppmix 02Cppmix 02
Cppmix 02
 
Modern C++ Learning
Modern C++ LearningModern C++ Learning
Modern C++ Learning
 
cpprefjp documentation
cpprefjp documentationcpprefjp documentation
cpprefjp documentation
 
C++1z draft
C++1z draftC++1z draft
C++1z draft
 
Boost tour 1_61_0 merge
Boost tour 1_61_0 mergeBoost tour 1_61_0 merge
Boost tour 1_61_0 merge
 
Boost tour 1_61_0
Boost tour 1_61_0Boost tour 1_61_0
Boost tour 1_61_0
 
error handling using expected
error handling using expectederror handling using expected
error handling using expected
 
Boost tour 1.60.0 merge
Boost tour 1.60.0 mergeBoost tour 1.60.0 merge
Boost tour 1.60.0 merge
 
Boost tour 1.60.0
Boost tour 1.60.0Boost tour 1.60.0
Boost tour 1.60.0
 
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 mergeBoost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
 
Boost Tour 1_58_0
Boost Tour 1_58_0Boost Tour 1_58_0
Boost Tour 1_58_0
 
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructorC++14 solve explicit_default_constructor
C++14 solve explicit_default_constructor
 
C++14 enum hash
C++14 enum hashC++14 enum hash
C++14 enum hash
 
Start Concurrent
Start ConcurrentStart Concurrent
Start Concurrent
 
Programmer mind
Programmer mindProgrammer mind
Programmer mind
 
Boost.Study 14 Opening
Boost.Study 14 OpeningBoost.Study 14 Opening
Boost.Study 14 Opening
 
Executors and schedulers
Executors and schedulersExecutors and schedulers
Executors and schedulers
 
Improvement future api
Improvement future apiImprovement future api
Improvement future api
 
C++14 variable templates
C++14 variable templatesC++14 variable templates
C++14 variable templates
 

Cppmix 01