CLion 2026.2 Help

C++20 コンセプトのサポート

概念は、 C++20 標準の主要な言語機能の 1 つです。 これらは、テンプレート引数にコンパイル時の制約を課す方法を提供し、テンプレートが期待に応えることを保証できます。

概念サポートの構成

1。 コンパイラーを設定する

  1. 使用しているコンパイラーは、C++20 Concepts 機能をサポートしている必要があります。

    GCC 10(英語) 以降を使用してください。 GCC10 での Concepts の実装は完全に C++20 に準拠(英語)です。

    MSVC は、Visual Studio バージョン 16.3 以降のコンセプトをサポートしています。 簡潔な構文(void fn(MyConcept auto mc) )はまだサポートされていないことに注意してください。

    正しく解決するには、 #define __cpp_lib_concepts の追加が必要になる場合があります(マイクロソフト発表(英語)へのコメントを参照)。

2。 プロジェクト標準を C++20 に設定する

CMake プロジェクト

  • 新しいプロジェクトを作成するときは、「新規プロジェクト」ウィザードの「言語標準 」フィールドで「C++20 」を選択します。

  • 既存のプロジェクトの場合、 CMakeLists.txt の先頭に CMAKE_CXX_STANDARD 変数を設定します。

    set(CMAKE_CXX_STANDARD 20)

Makefile プロジェクト

Makefile で CXXFLAGS 変数を設定します。

CXXFLAGS += -std=c++20

中間子プロジェクト

cpp_std コンパイラーオプションを設定します。

cpp_std=c++20

3。 Clangd 補完が有効になっていることを確認する

デフォルトでは、CLion のコード補完は Clangd ベースのエンジンによって実行されます。 コンセプトを使用する場合は、デフォルトのオプション Clangd のみ完了 を使用するか、 Clangd の補完が組み込みに統合されました に切り替えます。

  1. 設定 | 言語 & フレームワーク | C/C++ | Clangd に進みます。

  2. コード補完 セクションで、 clangd でコード補完を利用する チェックボックスを設定します:

    Clangd 補完オプション

概念のコードインサイト

解析とハイライト

CLion は、 concept および requires のすべての標準構文形式を解析してハイライトします。

概念でサポートされる構文形式

設定 | エディター | カラースキームの切り替え | C/C++ | テンプレート | コンセプト の概念のハイライト設定を調整できます。 デフォルトでは、スキームは C/C++ Class/struct/enum/union から継承されます。

概念の構文ハイライト設定

コード解析

クイックフィックス付きのインスペクションのセットは、Concepts を使用してコードで使用できます。

インスペクションのうち、一部のチェックはコンパイラーから行われます。

コンセプトのコンパイラーチェックの例

制約のない変数型 インスペクションは、制約された式または関数呼び出しの結果が代入される場合、 auto として宣言されたローカル変数を制約することを提案します。 このインスペクションは、Windows ではデフォルトで無効になっています。

制約のない変数型

コード補完、ナビゲーションリファクタリング

コード補完 for Concepts は、次の場合に使用できます。

  • 制約されているテンプレート型パラメーターの補完:

    制約付きタイプの補完
  • std::is_base_of<MyBase, T> および std::is_same<Other, T> によって制約されたタイプの補完。

    std::is_base_of<MyBase, T> および std::is_same<Other, T>T に関する提案のリストには、それぞれ MyBase および その他 のオプションが含まれています。

    std::is_base_of および std::is_same によって制約された型の補完

    この場合の補完は、 MyBase および その他 が具象型(テンプレート型ではない)の場合にのみ機能することに注意してください。

Rename リファクタリングや Go to DefinitionFind Usages などのナビゲーションアクションも、Concepts を利用したコードでサポートされています。

2026 年 7 月 15 日