C++17の新機能とは?主な変更点と追加機能をわかりやすく解説
C++17は、2017年に策定された標準C++言語のバージョンです。前バージョンにあたるのはC++11とC++14です。C++17では、コア言語に多数の機能が追加された一方で、一部の旧機能は削除されました。必要な機能が一通り揃った「フィーチャーコンプリート(feature complete)」な規格としても知られています。
ここからは、C++17で導入された主な新機能・変更点を見ていきましょう。
ライブラリの変更点 ― ユーティリティ(utils)
C++17の最も注目すべき特徴の一つが、他のライブラリの機能やパターンを統合した点です。これまで個別に提供されていた多くのサブライブラリが、標準規格へと取り込まれました。
C++17のユーティリティライブラリに追加された主な機能は以下の通りです。
- std::variant
- std::search
- std::string_view
- std::optional
- std::any
ライブラリの変更点 ― ファイルシステム(Filesystem)
従来の標準ライブラリには、重要ながらも欠けていた機能がありました。C++標準化委員会はライブラリを大幅に強化し、多くのシステム機能を標準規格として統合しました。
C++17のファイルシステムライブラリに追加された主な機能は以下の通りです。
- pathオブジェクトを扱う操作
- コンパイラ/ライブラリのサポート
- パスの走査(トラバーサル)
ライブラリの変更点 ― 並列アルゴリズム(Parallel Algorithm)
この機能は、C++11やC++14の既存機能を土台に、新たな要素を追加したものです。標準ライブラリにおいて自動並列化・自動ベクトル化の道が開かれ、マルチコア環境での処理性能向上が期待できます。
C++17の並列アルゴリズムに追加された主な機能は以下の通りです。
- 既存アルゴリズムの更新
- 実行ポリシー(Execution policies)
- 新しいアルゴリズムの追加
属性(Attribute)
C++17では、[[maybe_unused]]、[[fallthrough]]、[[nodiscard]]という3つの新しい属性が追加されました。これらを使うことで、開発者の意図をコンパイラに正確に伝えられるようになり、警告の精度とコードの可読性が向上します。
コードの簡素化
これまでのバージョンのC++にも、コードを簡潔に書くための機能が数多く存在しました。C++17ではさらに、以下の機能が追加され、より読みやすく保守しやすいコードの記述が可能になりました。
- if文/switch文の初期化ステートメント(Init statement)
- インライン変数(Inline variables)
- 構造化束縛宣言(Structured binding declarations)
サーチャー(Searchers)
C++17では、以前のバージョンにあった検索機能が改良されました。default_searcher、boyer_moore_searcher、boyer_moore_horspool_searcherの3種類が新たに追加されたサーチャーであり、これらを活用することで、文字列検索をより高速かつ柔軟に実装できます。
-
Ruby 2.6の新機能9選|コード例でわかる注目ポイントを徹底解説
Ruby 2.6には、開発者の生産性を高める新しい機能やパフォーマンス改善が多数盛り込まれています。 本記事では、Ruby 2.6で導入された9つの注目新機能を、実際のコード例とともにわかりやすく紹介します。最新のRuby動向をキャッチアップしたい方は、ぜひ最後までご覧ください。 1. 無限Range(Endless Range) Ruby 2.5以前でもFloat::INFINITYを使えば終端のない範囲を表現できましたが、Ruby 2.6ではさらに直感的な記法が使えるようになりました。 新しい無限Rangeは次のように書きます。 (1..) 通常のRangeが(1..10)のように終端
-
Windows 8.1 Update 1の新機能徹底解説|タスクバー・マウス操作・起動設定の変更点
Microsoftは、4月8日に配信開始されるWindows 8.1 Update 1の詳細を発表しました。主な新機能として、タスクバーの強化、スマートなマウス操作の調整、そしてマウスとキーボードユーザーに配慮したスタート画面の改良などが含まれています。 第1部:Windows 8.1の主要アップデート内容 1. タスクバーへのModernアプリの表示 Windowsストアアプリ(Modernアプリ)をデスクトップのタスクバーにピン留めできるようになりました。長年Windowsを使い続けてきたユーザーの間では賛否が分かれるかもしれませんが、これはタブレット向けのストアアプリをデスクトップ