C++ のインレイヒント
パラメーター名ヒント
パラメーター名のヒントは、メソッド呼び出しで対応する引数の横にパラメーター名を表示するエディターの装飾です。これらは、関数呼び出しと集計の初期化でパラメーターの長い(場合によってはネストされた)リストを見つけるのに役立ちます。
以下の例では、パラメーター名のヒントは、高さと幅の引数が混在しているという事実を見つけるのに役立ちます。
パラメーター名のヒントは、初期化するメンバーの名前を示し、C++17 以降の複雑な集約の初期化を解くのに役立ちます。
パラメーター名のヒントは、依存コードでも使用できます。
名前空間の名前のヒント
LLVM(英語) または Google(英語) のガイドラインに従っていない場合、ネームスペース定義の最後にあるネームスペース名のヒントは、括弧を閉じるネームスペースの後にコメントにネームスペースを追加することを推奨している場合に役立ちます。
プリプロセッサーディレクティブヒント
プリプロセッサーディレクティブヒントは、条件付き包含(#ifdef
、#ifndef
、#if
、#endif
、#else
、#elif
)がマクロ定義にどのように対応するかをすばやく理解できます。
型名のヒント
型名のヒントは、コンパイラーが周囲のコードから自動的に型を推測するときに役立ちます。ReSharper は、構造化バインディング、依存コード、関数呼び出し後の自動変数、関数およびラムダ戻り値の型名のヒントを提供します。
自動変数
この種のヒントは、auto
または decltype(auto)
型指定子を使用する、型が自動的に推定される変数で使用できます。デフォルトでは、初期化子がコンストラクター呼び出し、定数、明示的なキャストである場合など、推定された型が初期化子式から明らかな場合、ヒントは非表示になります。
関数とラムダの戻り値の型
関数とラムダの戻り値の型は、コードで省略されている場合、return ステートメントから自動的に推測できます。
構造化バインディング
C++17 の構造化バインディング宣言では、構造化バインディングのタイプを明示的に指定できないため、型ヒントが特に役立ちます。
依存コード
型ヒントは依存コードにも機能しますが、パフォーマンスに影響を与える可能性があることに注意してください。この場合、ReSharper オプション Alt+R, O の ページで依存コードヒントを無効にします。
関数呼び出し
デフォルト設定では、この種の型ヒントは、複数行のチェーンメンバー関数が呼び出された後にのみ表示されます。
型変換のヒント
型変換のヒントは、非表示の暗黙的な変換を表示できます。これにより、潜在的なパフォーマンスと正確性への影響を認識できます。
ReSharper は、オブジェクトのコピー、変換コンストラクターまたは集計初期化を使用したオブジェクトの初期化、変換演算子の呼び出しなど、さまざまな種類のクラス型変換のヒントを表示します。
組み込み型間の標準変換のヒントを有効にすることもできます。たとえば、精度を失ったり、型の符号を変更したりする可能性のある数値型間の変換などです。
ヒントには詳細な構成オプションがあります。
関連ページ:
Clang-Tidy インテグレーション
Clang-Tidy は、一般的な Clang コンパイラーに基づいた強力なオープンソースコード解析ツールです。典型的なプログラミングエラーのための広範な一連のコードチェックとそれに伴う修正が付属しています。ReSharper は、Clang-Tidy とのシームレスな統合を提供します。これは、ファイルを編集すると、ReSharper が別のプロセスとしてバックグラウンドで Clang-Tidy を実行し、インスペクションの結果が他の ReSharper のインスペクションと一緒に表示されることを意...
インレイヒント
インレイヒントは、コードの読みやすさを向上させる、構成可能なエディターの装飾です。プッシュツーヒントモード:インレイヒントは便利ですが、一方で、エディターのスペースを占有し、場合によっては冗長に見えることがあります。インレイヒントを必要に応じて表示するには、プッシュツーヒントモードを使用します。このモードでは、ヒントを非表示にしておき、必要なときにのみ表示することができます。キーを押すとインレイヒントを表示するアプリケーションのフォーカスがエディターにあることを確認します。Ctrl キーを押し続...
コード階層
コード分析に加えて、ReSharper のコード分析では、階層を構築してメンバーを調査でき、チェーンを呼び出し、チェーンに値を渡します。呼び出し階層:呼び出し階層は、関数の呼び出し元(スーパータイプ)または呼び出し先(サブタイプ)を表示します。受信コールを調べるには、任意の機能にカーソルを置きます。次に、メインメニューからを選択するか、を押して、これを調べるリストから受信コールを選択します。発信呼び出しを調べるには、任意の関数にカーソルを置きます。次に、メインメニューからを選択するか、を押
インクルードの分析
インクルードの巨大な階層によって引き起こされる長いビルド時間は、実際の大規模な C++ プロジェクトにおける最大の問題の 1 つです。ReSharper には、設計時のインクルードの最適化に役立ついくつかの機能があります。例: 未使用のディレクティブをマークするか、必要な宣言にヘッダーを含める代わりに、未解決の名前の前方宣言を自動的に作成します。階層的な問題をより体系的に解決するために、ReSharper は不要なヘッダーの依存関係を見つけて排除するコードインスペクションツールアナライザーを含むを...