nakameguro_feature.cpp vol.7
イベント内容
C++14/17の新機能について、復習&予習をしませんか?
- C++17が出たみたいだけど、何が新しくなったのが全然追えてない…><
- 色んな機能が入ってるみたいだけど、本当に抑えとくべき機能やライブラリって何なんだろ?
- 他の人がどう考えているか知りたい…
こんな人は、一度、この集まりに参加してみてください
質疑応答・ディスカッション形式で進める予定ですが、無言の方もOKです
特に書籍などを持参する必要はありません
ネタ振りとして
進行役が、C++14/17の基礎的な機能やライブラリの話題を、参加者に提供します
参加者は
それはどんな場面で役立ちそうなのか?
誰が使いそうな機能なのか?
などなど、自由に意見交換してもらえればと思います
(聞くだけでも、もちろんOKです)
第1回~第3回では、C++14の振り返りを行いました!
第4回~第6回では、C++17の予習を行っています
第7回目は引き続き
C++17の新機能とライブラリ機能の確認
です
以下に入っていなくても、テーマに沿った内容であれば話題OKです
C++17の言語系新機能
変数・データ構造関係
- 十六進浮動小数点数リテラル
- インライン変数(vol.4)
- 構造化束縛(vol.4)
- 波括弧初期化の型推論の新規則(vol.4)
- [[maybe_unused]]属性(vol.6)
- [[nodiscard]]属性(vol.6)
- 値のコピー省略を保証(vol.4)
- 厳密な式の評価順(vol.4)
- 参照メンバをもつクラスの置き換え
- enum class変数の初期値として整数を指定する際の規則を調整
制御構文
- if文とswitch文の条件式と初期化を分離(vol.4)
- [[fallthrough]]属性(vol.6)
- 範囲 for ループの制限緩和
ラムダ式
- ラムダ式での*thisのコピーキャプチャ
テンプレート
- 畳み込み式(vol.4)
- テンプレートテンプレートパラメータにtypenameキーワードの使用を許可
- クラステンプレートのテンプレート引数推論(vol.4)
- 非型テンプレートパラメータのauto宣言(vol.4)
- 全ての非型テンプレート引数の定数式評価を許可
- 変数テンプレートのデフォルトテンプレート引数を許可
定数式
- static_assertのメッセージ省略を許可(vol.4)
- constexprラムダ(vol.4)
- if constexpr文(vol.4)
名前空間
- 入れ子名前空間の定義(vol.4)
- 名前空間と列挙子への属性付加を許可(vol.6)
- using宣言のパック展開
例外
- 例外仕様を型システムの一部にする(vol.6)
- 非推奨だった古い例外仕様を削除(vol.6)
属性
- [[fallthrough]]属性(vol.6)
- [[maybe_unused]]属性(vol.6)
- [[nodiscard]]属性(vol.6)
- 名前空間と列挙子への属性付加を許可(vol.6)
- 属性の名前空間指定に繰り返しをなくす(vol.6)
- 不明な属性を無視する(vol.6)
プリプロセッサ
- __has_include
機能の削除
- トライグラフの削除(vol.4)
- 非推奨だったregisterキーワードを削除
- 非推奨だったbool型に対するインクリメント演算子を削除
- 非推奨だった古い例外仕様を削除(vol.6)
小さな変更
- 更新された定義済みマクロ
- 機能テストマクロ
- noexcept付きのラムダ式から変換する関数ポインタにnoexceptを付加する
- UTF-8文字リテラル
その他
- std::*_v(vol.4)
- over-aligned型対応new(vol.4)
C++17のライブラリ系新機能
新ライブラリ
- Mathematical special functions
- Filesystem
- Parallelism(vol.5)
- New algorithms
(for_each_n, reduce, transform_reduce, exclusive_scan, inclusive_scan, transform_exclusive_scan, transform_inclusive_scan)- New type: string_view (and basic_string_view)
- New type: any
- New class template: variant
- New class template: optional
- invoke
- is_invocable, is_invocable_r, invoke_result (vol.5)
- Elementary string conversions
- Alias template void_t (vol.6)
- Alias template bool_constant
- Logical operation metafunctions
- Traits for SFINAE-friendly swap
- Trait is_aggregate
- Trait has_unique_object_representations
- as_const (vol.6)
- Non-member size, data, empty
- clamp
- gcd and lcm
- Class shared_mutex
- Interference sizes (hardware_{con,de}structive_interference_size)
- Tuple apply(vol.5)
- Construction from tuples
- Universal negator not_fn(vol.5)
- Memory resources
(synchronized_pool_resource, unsynchronized_pool_resource, monotonic_buffer_resource)- A polymorphic allocator
- std::pmr::vector< T > = std::vector< T, polymorphic_allocator< T > >
- Searcher functors
既存ライブラリが修正されたもの
- Single-argument static_assert
- Nested namespace declarations
- Allow typename in template template parameters
- Range-based for takes separate begin/end types
- Pack expansion in using-declarations
- Construction for values of fixed enums
- uncaught_exceptions() (vol.6)
- Attributes in namespaces and enumerators
- Attribute namespaces without repetition
- Improved insertion for unique-key maps
- Return type of emplace
- Splicing maps and sets
- Non-const string::data
- A variadic version of lock_guard called scoped_lock
- Variable templates for traits
- atomic::is_always_lock_free
- shared_ptr for arrays
- shared_ptr::weak_type
- Three-dimensional hypotenuse
- Further uninitialized algorithms
- Incomplete type support for allocators
- Changes to <chrono>
- Constexpr for char_traits
- Improving pair and tuple
- Changes to common_type
その他
- C++ refers to C11
- Reserved namespaces
- C library synopses
- Term “forwarding reference”
Term “default member initializer”
Term “templated entity”
Term “contiguous iterator”- Change “random number generator” to “random bit generator”
※ 参考
https://cpprefjp.github.io/lang/cpp17.html
https://isocpp.org/files/papers/p0636r0.html
日ごろ思っている疑問をぶつけてもいいですし
出た話題だけでも聞きたい…などもOKです
以降、数回かけて、C++17を抑えていく予定です
自分の興味のある切り口で、C++について話し合いましょう!
<対象者など>
次のような人か、この集まりに向いています
- C++が好きで、新しく情報収集をしたいが、なかなか実践に移せていない
- みんながどうやってコードを書いているか気になる
- C++にまつわる業務の悩みがある
- C++についての新機能について、実はよく分かっていない
- 出来ればC++を世の中に広めたい
逆に、以下のような方は向いていません
- C++が好きではない
<やること>
- テーマにまつわるC++の話
- ディスカッション
- 質疑応答
- C++について会話する
- C++の会話を聞く(聞くだけ、無言でもOK)
<やらないこと>
- 発表形式の資料
- 参加者の方に発言を強要すること
- 確実な回答
(ここで出た話題はあくまで個人の意見なので、確実性や何かを保証するものではありません) - 営利目的の何か
- C++に関係のない話題
<場所>
〒153-0061
東京都目黒区中目黒2-10-17
バンタンゲームアカデミー東京校
最寄駅は地下鉄日比谷線/東急東横線 中目黒です
<注意>
- 教室では飲食禁止となります
※ペットボトルなど飲み口の閉まるもののみ可 - 他の授業や学生の迷惑にならないように、配慮をお願いします
- 20:45終了、21:00までに現状復帰し、完全撤収にご協力下さいm(__)m
<スケジュール>
19:15~19:30 開場
19:30~20:30 テーマを元にした新機能紹介
進行役: 鳥頭かりやマン @kariya_mitsuru
20:30〜20:45 お悩み雑談室
C++に関する相談、雑談などがあれば持ってきてください(テーマ外でも可)
<参加費>
無料
<持ち物>
C++14/17に対する興味
<Twitterハッシュタグ>
#nakamecpp
<協力>
会場サポート:バンタンゲームアカデミー東京校
おまけ:勉強会後…
希望者は、近くの定食屋(各自精算/予算1000円前後)でご飯を食べる予定です
みなさまの参加を心待ちにしております!(^^)/
注意事項
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。
新規会員登録
このイベントに申し込むには会員登録が必要です。
アカウント登録済みの方はログインしてください。
※ ソーシャルアカウントで登録するとログインが簡単に行えます。
※ 連携したソーシャルアカウントは、会員登録完了後にいつでも変更できます。