ホームページ > バックエンド開発 > C++ > C 17 で導入された主要な言語とライブラリの機能は何ですか?

C 17 で導入された主要な言語とライブラリの機能は何ですか?

Linda Hamilton
リリース: 2024-12-13 16:33:13
オリジナル
216 人が閲覧しました

What are the Key Language and Library Features Introduced in C  17?

C 17 の新機能

C 17 の機能開発の完了に続いて、いくつかの新しい言語機能とライブラリの追加が導入されました。

言語機能:

  • テンプレートの使用方法の改善:

    • クラス テンプレートのテンプレート引数の推論
    • の表現テンプレートを使用した任意のタイプの値
  • Lambda の機能強化:

    • constexpr ラムダの導入
    • キャプチャ機能これでラムダ
  • 属性:

    • [[fallthrough]]、[[nodiscard] などの新しい属性の導入]、 そして[[maybe_unused]]
  • 構文のクリーンアップ:

    • インライン変数
    • 簡素化された名前空間構文:名前空間A::B
    • 非スロー式: throw() および noexcel(true)
  • 制御フローの改善:

    • 解凍用の構造化バインディング強化されたフロー制御のための値
    • if (init; 条件) および switch (init; 条件)
    • 一般化された範囲ベースの for ループ
    • 条件付きコンパイル用の if constexpr
  • その他の注目すべきもの機能:

    • 16 進浮動小数点リテラル
    • オーバーアライメントされたデータに対する動的メモリ割り当て
    • コピー省略の保証
    • 固定順序-式の of-evaluation
    • Direct列挙型のリスト初期化
    • スレッドの進行状況の保証

ライブラリの追加:

データ型:

  • std::variant (さまざまな型の値を表す場合)
  • std::optional (オプションの値を表す場合)
  • std::any (表す場合)コピー不可能な型を含む任意の型の値
  • std::string_view (文字列を効率的に処理するため)参照
  • 型情報なしでデータを表現するための std::byte

呼び出し可能処理:

  • ジェネリックの std::invokeタプルベースの呼び出し可能な呼び出し
  • std::apply呼び出し可能な呼び出し
  • タプルからオブジェクトを構築するための std::make_from_tuple
  • is_invocable と関連特性の紹介

ファイル システム ライブラリ:

  • の実装ファイル システム技術仕様 (TS)

新しいアルゴリズム:

  • for_each_n、reduce、transform_reduce など

スレッド化機能強化:

  • より効率的なマルチスレッド アクセスのための std::shared_mutex の導入
  • アトミック保証とハードウェア干渉サイズ検出

ライブラリの基礎 TS追加:

  • 検索アルゴリズム (alg.search)
  • ポリモーフィック アロケーター (pmr)

コンテナの改善:

  • 効率的なコンテナのための try_emplace と insert_or_assign挿入
  • マップ、セット、および順序付けされていないコンテナのスプライシング
  • 文字列の非 const data() アクセス

スマート ポインター:

  • 修正と微調整unique_ptr
  • 共有ポインタを管理するためのweak_from_thisの紹介

その他:

  • 代わりにC11を使用C99 の標準ライブラリ用
  • 予約済み将来の標準ライブラリ用の std[0-9] 名前空間
  • さまざまなユーティリティ関数 (destroy、uninitialized_***)
  • 特殊な数学関数の公開
  • std:: の導入クランプ、std::gcd、std::lcm
  • 例外std::uncaught_Exceptions などの処理の改善
  • std::as_const、std::bool_constant、さまざまなテンプレート ユーティリティ
  • std::chrono ライブラリの改善
  • ブール演算子の導入(std::結合、std::分離、 std::negation)
  • std 内での noexc の使用に関するルール

非推奨の機能:

  • 一部の C ライブラリの削除、 、result_of、およびその他

以上がC 17 で導入された主要な言語とライブラリの機能は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート