このエントリーをはてなブックマークに追加

2月

14

ebisu_feature.cpp vol.5

C++の機能について話し合いましょう

主催 : 遥佐保

ハッシュタグ :#ebisucpp
募集内容

参加枠1

無料

先着順
16/22

イベントの説明

C++14/17の新機能について、復習&予習をしませんか?

  • C++17が出たみたいだけど、何が新しくなったのが全然追えてない…><
  • 色んな機能が入ってるみたいだけど、本当に抑えとくべき機能やライブラリって何なんだろ?
  • 他の人がどう考えているか知りたい…

こんな人は、一度、この集まりに参加してみてください
質疑応答・ディスカッション形式で進める予定ですが、無言の方もOKです

特に書籍などを持参する必要はありません

ネタ振りとして
進行役が、C++14/17の基礎的な機能やライブラリの話題を、参加者に提供します

参加者は
 それはどんな場面で役立ちそうなのか?
 誰が使いそうな機能なのか?
などなど、自由に意見交換してもらえればと思います
(聞くだけでも、もちろんOKです)

第1回~第4回で、C14とC17の言語機能やライブラリについて、みんなで振り返りを行いました!
第5回目は引き続き

C++17の新機能とライブラリ機能の確認

を行いたいと思います!

以下に入っていなくても、テーマに沿った内容であれば話題OKです


C++17の言語系新機能

(取り消し線は、第4回にて終了した項目です)

変数・データ構造関係

  • 十六進浮動小数点数リテラル
  • インライン変数
  • 構造化束縛
  • 波括弧初期化の型推論の新規則
  • [[maybe_unused]]属性
  • [[nodiscard]]属性
  • 値のコピー省略を保証
  • 厳密な式の評価順
  • 参照メンバをもつクラスの置き換え
  • enum class変数の初期値として整数を指定する際の規則を調整

制御構文

  • if文とswitch文の条件式と初期化を分離
  • [[fallthrough]]属性
  • 範囲 for ループの制限緩和

ラムダ式

  • ラムダ式での*thisのコピーキャプチャ

テンプレート

  • 畳み込み式
  • テンプレートテンプレートパラメータにtypenameキーワードの使用を許可
  • クラステンプレートのテンプレート引数推論
  • 非型テンプレートパラメータのauto宣言
  • 全ての非型テンプレート引数の定数式評価を許可
  • 変数テンプレートのデフォルトテンプレート引数を許可

定数式

  • static_assertのメッセージ省略を許可
  • constexprラムダ
  • if constexpr文

名前空間

  • 入れ子名前空間の定義
  • 名前空間と列挙子への属性付加を許可
  • using宣言のパック展開

例外

  • 例外仕様を型システムの一部にする
  • 非推奨だった古い例外仕様を削除

属性

  • [[fallthrough]]属性
  • [[maybe_unused]]属性
  • [[nodiscard]]属性
  • 名前空間と列挙子への属性付加を許可
  • 属性の名前空間指定に繰り返しをなくす
  • 不明な属性を無視する

プリプロセッサ

  • __has_include

機能の削除

  • トライグラフの削除
  • 非推奨だったregisterキーワードを削除
  • 非推奨だったbool型に対するインクリメント演算子を削除
  • 非推奨だった古い例外仕様を削除

小さな変更

  • 更新された定義済みマクロ
  • 機能テストマクロ
  • noexcept付きのラムダ式から変換する関数ポインタにnoexceptを付加する
  • UTF-8文字リテラル

その他

  • std::*_v
  • over-aligned型対応new

C++17のライブラリ系新機能

新ライブラリ

  • Mathematical special functions
  • Filesystem
  • Parallelism
  • 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
  • Elementary string conversions
  • Alias template void_t
  • Alias template bool_constant
  • Logical operation metafunctions
  • Traits for SFINAE-friendly swap
  • Trait is_aggregate
  • Trait has_unique_object_representations
  • as_const
  • Non-member size, data, empty
  • clamp
  • gcd and lcm
  • Class shared_mutex
  • Interference sizes (hardware_{con,de}structive_interference_size)
  • Tuple apply
  • Construction from tuples
  • Universal negator not_fn
  • 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()
  • 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
  • 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++に関係のない話題

<場所>
〒150-0013 東京都渋谷区恵比寿1-21-3 (NRビル1F) シリコンスタジオ株式会社

最寄駅はJR/地下鉄日比谷線 恵比寿です


<注意>
開始時間を19:30~としています
これまでの開始時間より早くなっていますので、ご注意ください


<スケジュール>

19:15~19:30 開場

19:30~21:00 テーマを元にした新機能紹介
     進行役: @Flast_RO / @herumi

21:00〜21:15 お悩み雑談室
     C++に関する相談、雑談などがあれば持ってきてください(テーマ外でも可)


<参加費>
無料


<持ち物>
C++14/17に対する興味


<Twitterハッシュタグ>
#ebisucpp


<協力>
会場サポート:シリコンスタジオ(株)


おまけ:勉強会後…

希望者は、近くの定食屋(各自精算/予算1000円前後)でご飯を食べる予定です


みなさまの参加を心待ちにしております!(^^)/

資料 資料をもっと見る/編集する

資料が投稿されると、最新の3件が表示されます。

フィード

hr_sao

hr_sao さんが ebisu_feature.cpp vol.5 を公開しました。

2018/02/06 18:20

ebisu_feature.cpp vol.5 を公開しました!

グループ

ebisu.cpp

Optimized C++を題材してに、みんなの疑問や質問を解決していく会です

イベント数 38回

メンバー数 164人

終了

2018/02/14(水)

19:30
21:15

募集期間
2018/02/06(火) 18:20 〜
2018/02/14(水) 21:15

会場

シリコンスタジオ株式会社

〒150-0013 東京都渋谷区恵比寿1-21-3 (NRビル1F)

管理者

参加者(16人)

hr_sao

hr_sao

ebisu_feature.cpp vol.5 に参加を申し込みました!

Flast

Flast

std::invoke周辺のお話

とっちゃん

とっちゃん

ebisu_feature.cpp vol.5 に参加を申し込みました!

ipp_tada

ipp_tada

ebisu_feature.cpp vol.5に参加を申し込みました!

5mingame2

5mingame2

今度こそよろしくお願いいたします!!

atcg

atcg

ebisu_feature.cpp vol.5 に参加を申し込みました!

mmYYmmdd

mmYYmmdd

ebisu_feature.cpp vol.5 に参加を申し込みました!

ho-ri

ho-ri

ebisu_feature.cpp vol.5 に参加を申し込みました!

kanke

kanke

ebisu_feature.cpp vol.5 に参加を申し込みました!

参加者一覧(16人)