C++0x 10
レス数が950を超えています。1000を超えると書き込みができなくなります。
0992デフォルトの名無しさん
2010/10/01(金) 01:40:38関数のdeleted定義は、その名前のとおり、関数の定義である。
deleted定義によって定義された名前は、宣言以外の目的で使うことはできない。
使った場合はエラーとなる。
もちろん、関数呼び出しはできないし、未評価式の中でも使えない。
void f() = delete ;
void f() ; // OK、再宣言
int main()
{
f() ; // エラー、関数呼び出し
typedef decltype(f) * type = &f ; // エラー、decltypeの未評価式と、&演算子のオペランド
}
それ以外は、通常の関数の定義とまったく同じように振舞う。
もちろん、name lookupで見つかるし、テンプレートならばインスタンス化されるし、オーバーロード解決の際にも考慮される。
ただし、そうした結果として選ばれた名前が、deleted定義であった場合、その名前を使うとエラーとなる。
レス数が950を超えています。1000を超えると書き込みができなくなります。