相关疑难解决方法(0)

在非成员函数上使用delete有什么意义?

摘自标准20.12 [function.objects]:

template <class T> reference_wrapper<T> ref(T&) noexcept;
template <class T> reference_wrapper<const T> cref(const T&) noexcept;
template <class T> void ref(const T&&) = delete;
template <class T> void cref(const T&&) = delete;
Run Code Online (Sandbox Code Playgroud)

我习惯于=delete在成员函数的上下文中看到.目的是禁止编译器提供的操作.例如,使类不可复制或不可移动.

然而,在这种情况下,意图似乎是意图的记录.这是正确的吗?是否有其他情况需要使用=delete非成员函数,优选或不可避免?

c++ c++11

26
推荐指数
1
解决办法
1057
查看次数

标签 统计

c++ ×1

c++11 ×1