constexpr function_ref& operator=(const function_ref&) noexcept = default; // (1)
template<class T> function_ref& operator=(T) = delete; // (2)
概要
コピー代入演算子。
テンプレートパラメータ制約
- (2) : 以下の制約をみたすとき、代入演算子はdelete宣言される
T
がfunction_ref
と同一型ではなく、かつis_pointer_v<T>
がfalse
であり、かつT
がnontype_t
の特殊化でないこと
効果
- (1) : コピー代入。
戻り値
*this
例
#include <iostream>
#include <functional>
int ident(int x)
{ return x; }
int twice(int x)
{ return x * 2; }
int main()
{
std::function_ref<int(int)> f = ident;
std::function_ref<int(int)> g = twice;
// コピー代入
f = g;
std::cout << f(1) << std::endl;
}
出力
2
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??