CLion 2019.3ヘルプ

インライン化

CLionは、次のインラインリファクタリングを提供します。

  • 定数のインライン化。このリファクタリングは定数の抽出リファクタリングとは反対です。

  • インライン定義。このリファクタリングは抽出定義リファクタリングとは反対です。

  • Typedef のインライン化。このリファクタリングはtypedefを抽出するリファクタリングとは反対です。

  • パラメーターのインライン化。このリファクタリングはパラメーターの導入リファクタリングとは反対です。

  • 関数のインライン化。このリファクタリングは関数の抽出リファクタリングとは反対です。

サンプル

//This function will be inlined int fdiff(int x, int y, int factor); int main(){ int x = 10; int y = 9; int z = fdiff(x, y, 2); return 0; } int fdiff(int x, int y, int factor) { return (x-y) * factor; }
int main(){ int x = 10; int y = 9; int z = (x - y) * 2; return 0; }

int main (int argc, const char * argv[]) { @autoreleasepool { float result; //The third parameter will be inlined result = mulfunc(10, 20, 2); } return 0; } float mulfunc(int x, int y, int factor) { return x * y * factor; }
int main (int argc, const char * argv[]) { @autoreleasepool { float result; result = mulfunc(10, 20); } return 0; } float mulfunc(int x, int y) { return x * y * 2; }

import math class Solver: def demo(self): a = 3 b = 25 c = 46 #This variable will be inlined return_type_of_sqrt = math.sqrt(b ** 2 - 4 * a * c) root1 = (-b + return_type_of_sqrt) / (2*a) root2 = (-b - return_type_of_sqrt) / (2*a) print(root1,root2) Solver().demo()
import math class Solver: def demo(self): a = 3 b = 25 c = 46 root1 = (-b + math.sqrt(b**2 - 4*a*c)) / (2*a) root2 = (-b - math.sqrt(b**2 - 4*a*c)) / (2*a) print(root1,root2) Solver().demo()

function GetCookie (name) { var arg = name + "="; var alen = arg.length; //This variable will be inlined var clen = document.cookie.length; var i = 0; while (i != clen) { var j = i + clen; ... } }
function GetCookie (name) { var arg = name + "="; var alen = arg.length; var i = 0; while (i != document.cookie.length) { var j = i + document.cookie.length; ... } }

インラインリファクタリングを実行する

  1. インライン化する目的のシンボルにキャレットを配置します。

  2. 以下のいずれか 1 つを実行します:

    • メインメニューまたはコンテキストメニューから、リファクタリング | インライン化を選択します。

    • Ctrl+Alt+Nを押します。

  3. 選択したシンボルに対応するインライン化ダイアログで、インラインリファクタリングを確認するか、リファクタリングプレビューを探すで選択したシンボルの使用を表示します。

最終更新日: 2020年1月10日

関連ページ:

定数の抽出

定数の抽出リファクタリングにより、ソースコードを読みやすく保守しやすくなります。また、ハードコードされた定数を値や目的について何の説明もしないで使用するのを避けるのに役立ちます。インプレースで定数を抽出するインプレースリファクタリングはデフォルトでCLionで有効になっています。この設定を変更してい...

抽出定義

抽出定義リファクタリングメソッドは、選択されたトークンセットをディレクティブを使用してマクロとして定義し、トークンセットをコード内のマクロ呼び出しで置き換えます。マクロ定義は、現在のファイルに配置することも、関連するヘッダーファイルに移動することもできます。サンプル:

typedefを抽出する

typedefを抽出するリファクタリングは、型の選択された宣言を定義に変更します。実際の宣言が煩雑で、混乱を招く可能性がある場合、または実装ごとに異なる可能性がある場合、あるいは単にコード表示をより明確で読みやすくするために、typedefを抽出するを適用できます。サンプル:

パラメーターの導入

パラメーターの導入リファクタリングは、関数宣言に新しいパラメータを追加し、それに応じて関数呼び出しを更新するために使用されます。サンプル: int fdiff (int x, int y);

関数の抽出

関数の抽出リファクタリングが呼び出されると、CLionは選択されたコードブロックを分析し、選択されたコードフラグメントの入力である変数とそれに対して出力される変数を検出します。検出された出力変数は、抽出された関数の戻り値として使用されます。C++の例: int...

メンバーをプルアップ、メンバーをプッシュダウンする

メンバーのプル・アップリファクタリングでは、クラスメンバーを基本クラスに移動できます。メンバーのプッシュ・ダウンリファクタリングは、クラスメンバーをサブクラスに移動することによってクラス階層をクリーンアップできます。その後、メンバーは直接サブクラスにのみ再配置されます。メンバーをプルアップするスーパ...