ワーキングドラフトは、defaulted-functionsは特別なメンバー関数でなければならないことを明示的に示しています(例えば、copy-constructor、default-constructorなど(§8.4.2.1-1))。これは完全に理にかなっています。
ただし、削除された関数(§8.4.3)にはそのような制限はありません。そうですか?
言い換えれば、これらの3つの例は有効ですc++0
か?
struct Foo
{
// 1
int bar( int ) = delete;
};
// 2
int baz( int ) = delete;
template< typename T >
int boo( T t );
// 3
template<>
int boo<int>(int t) = delete;