工作草案明确指出默认函数必须是特殊的成员函数(例如复制构造函数、默认构造函数等(第 8.4.2.1-1 节))。这很有意义。
但是,我没有看到对已删除功能的任何此类限制(第 8.4.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;