//コンテキスト対応補完サンプル
//■← のあるところで Ctrl Space を入力して補完リストを出してください。

#include ""	//■← 共通設定-開発Includeフォルダで設定したフォルダから*.hが候補になります。
		// "" の中にカーソルを置いて実行してください

enum enumtest{
	enum1,
	enum2,
};

#define FUNCFLAG_A	1
#define FUNCFLAG_B	2
#define FUNCFLAG_C	4

struct stest{
	int var1;
	struct stest *pointer;
	int flag;	///@flag:FUNCFLAG_
};

///@flag:2:FUNCFLAG_
void funcA(enum enumtest e, int flag)
{
	switch (e){
	case enum1:
	case 	//■← switch(e)のためenumtestのメンバが候補になります。
		//enum1はすでに記述されているためenum2のみ候補になります。
	}
	struct stest s;
	s.var1 = 0;
	s.flag = //■← FUNCFLAG_x が候補になります。
	;
	s.	//■← すでに s.var1 s.flag への代入があるため var1, flagは候補から除外されます。
	;
	if (s.flag==	 //■← FUNCFLAG_x が候補になります。
	;
}

class ctest{
public:
	ctest(){}
	ctest(int a){}
	ctest(int a, int b){}
};

void func()
{
	funcA( 	//← 引数が enumtestのため、enumtestのメンバが候補になります。
	;
	funcA(enum1, //← 引数情報により FUNCFLAG_x が候補になります。
	;
	ctest *p = new  //← ctestのコンストラクタが候補になります。
}



