Visual C++ コード スニペットVisual C++ Code Snippets

Visual Studio でコード スニペットを使用して、よく使用されるコードを C++ コード ファイルに追加することができます。In Visual Studio, you can use code snippets to add commonly-used code to your C++ code files. 通常、C# の場合とほぼ同じ方法でコード スニペットを使用できますが、既定のコード スニペットのセットは異なります。In general, you can use code snippets in much the same way as in C#, but the set of default code snippets is different.

コード スニペットをコードの特定の場所に追加することと (挿入)、選択したコードをコード スニペットで囲むことのいずれかが可能です。You can either add a code snippet at a particular location in your code (insertion) or surround some selected code with a code snippet.

コード スニペットの挿入Inserting a Code Snippet

コード スニペットを挿入するには、C++ コード ファイル (.cpp または .h) を開き、ファイル内の任意の場所をクリックして、次のいずれかを実行します。To insert a code snippet, open a C++ code file (.cpp or .h), click somewhere inside the file, and do one of the following:

  • 右クリックしてコンテキスト メニューを表示し、[スニペットの挿入] を選択するRight-click to get the context menu and select Insert Snippet

  • [編集 / IntelliSense] メニューの [スニペットの挿入] を選択するIn the Edit / IntelliSense menu, select Insert Snippet

  • ホット キー Ctrl + K + X を使用するUse the hotkeys: CTRL + K + X

    #if で始まる選択肢の一覧が表示されます。You should see a list of choices beginning with #if. #if を選択すると、ファイルに追加された次のコードが表示されます。When you select #if, you should see the following code added to the file:

#if 0  

#endif // 0  

次に、0 を正しい条件に置き換えることができます。You can then replace the 0 with the correct condition.

コード スニペットを使用して、選択したコードを囲むUsing a Code Snippet to Surround Selected Code

コード スニペットを使用して、選択したコードを囲むには、行 (または複数の行) を選択し、次のいずれかを実行します。To use a code snippet to surround selected code, select a line (or multiple lines) and do one of the following:

  1. 右クリックしてコンテキスト メニューを表示し、[ブロックの挿入] を選択するRight-click to get the context menu and select Surround With

  2. [編集 / IntelliSense] メニューの [ブロックの挿入] を選択するIn the Edit / IntelliSense menu, select Surround With

  3. ホット キー Ctrl + K + S を使用するUse the hotkeys: CTRL + K + S

    #if を選択します。Select #if. 次のように表示されます。You should see something like this:

#if 0  
#include "pch.h"  // or whatever line you had selected  
#endif // 0  

次に、0 を正しい条件に置き換えることができます。You can then replace the 0 with the correct condition.

C++ コード スニペットの全一覧の確認場所Where can I find a complete list of the C++ code snippets?

コード スニペット マネージャー ([ツール] メニュー) に移動し、[言語][Visual C++] に設定すると、C++ コード スニペットの全一覧が表示されます。You can find the complete list of C++ code snippets by going to the Code Snippets Manager (on the Tools menu) and setting the Language to Visual C++. 下のウィンドウで、[Visual C++] を展開します。In the window below, expand Visual C++. すべての C++ コード スニペットの名前がアルファベット順で表示されます。You should see the names of all the C++ code snippets in alphabetical order.

ほとんどのコード スニペットの名前は自明ですが、一部の名前は分かりにくい場合があります。The names of most code snippets are self-explanatory, but some names might be confusing.

class と classiClass vs. classi

class スニペットは MyClass というクラスの定義を提供します。これは適切な既定のコンストラクターとデストラクターを持ち、コンストラクターとデストラクターの定義はクラスの外部に配置されます。The class snippet provides the definition of a class named MyClass, with the appropriate default constructor and destructor, where the definitions of the constructor and destructor are located outside the class:

class MyClass  
{  
public:  
MyClass();  
~MyClass();  

private:  

};  

MyClass::MyClass()  
{  
}  

MyClass::~MyClass()  
{  
}  

classi コード スニペットも MyClass というクラスの定義を提供しますが、既定のコンストラクターとデストラクターはクラス定義内で定義されます。The classi code snippet also provides the definition of a class named MyClass, but the default constructor and destructor are defined inside the class definition:

class MyClass  
{  
public:  
MyClass()  
{  
}  

~MyClass()  
{  
}  

private:  

};  

for と foreach と forr と rforFor vs. foreach vs. forr vs rfor

さまざまな種類の for ループを提供する 4 つのスニペットがあります。There are four different for snippets that provide different kinds of for loops.

for スニペットは、条件がオブジェクトの長さ (size_t) に基づく for ループを提供します。The for snippet provides a for loop in which the condition is based on the length (in size_t) of an object:

for (size_t i = 0; i < length; i++)  
{  

}  

foreach スニペットは、コレクションのメンバーを反復処理する for each ループを提供します。The foreach snippet provides a for each loop that iterates over the members of a collection:

for each (object var in collection_to_loop)  
{  

}  

forr スニペットは、条件がオブジェクトの長さ (整数) に基づく逆 for ループを提供します。The forr snippet provides a reverse for loop in which the condition is based on the length (in integers) of an object:

for (int i = length - 1; i >= 0; i--)  
{  

}  

rfor スニペットは、範囲に基づく for ループ (リンク) を提供します。The rfor snippet provides a range-based for loop (link):

for (auto& i : v)  
{  

}  

デストラクターのスニペット (~)The destructor snippet (~)

デストラクターのスニペット (~) は、コンテキストに応じてさまざまな動作を示します。The destructor snippet (~) shows different behavior in different contexts. このスニペットをクラス内に挿入すると、そのクラスのデストラクターが提供されます。If you insert this snippet inside a class, it provides a destructor for that class. たとえば、次のような XML があるとします。For example, given the following code:

class SomeClass {  

};  

デストラクターのスニペットを挿入すると、SomeClass のデストラクターが提供されます。If you insert the destructor snippet, it provides a destructor for SomeClass:

class SomeClass {  
    ~SomeClass()  
    {  

    }  
};  

デストラクターのスニペットをクラスの外部に挿入しようとすると、プレースホルダーの名前を持つデストラクターが提供されます。If you try to insert the destructor snippet outside a class, it provides a destructor with a placeholder name:

~TypeNamePlaceholder()  
{