function Class
可呼叫之物件的包裝函式。
template<class Fty>
class function // Fty of type Ret(T1, T2, ..., TN)
: public unary_function<T1, Ret> // when Fty is Ret(T1)
: public binary_function<T1, T2, Ret> // when Fty is Ret(T1, T2)
{
public:
typedef Ret result_type;
function();
function(nullptr_t);
function(const function& _Right);
template<class Fty2>
function(Fty2 fn);
template<class Fty2, class Alloc>
function (reference_wrapper<Fty2>, const Alloc& _Ax);
template<class Fty2, class Alloc>
void assign (Fty2, const Alloc& _Ax);
template<class Fty2, class Alloc>
assign (reference_wrapper<Fty2>, const Alloc& _Ax);
function& operator=(nullptr_t);
function& operator=(const function&);
template<class Fty2>
function& operator=(Fty2);
template<class Fty2>
function& operator=(reference_wrapper<Fty2>);
void swap(function&);
explicit operator bool() const;
result_type operator()(T1, T2, ....., TN) const;
const std::type_info& target_type() const;
template<class Fty2>
Fty2 *target();
template<class Fty2>
const Fty2 *target() const;
template<class Fty2>
void operator==(const Fty2&) const = delete;
template<class Fty2>
void operator!=(const Fty2&) const = delete;
};
參數
Fty
包裝函式的型別。_Ax
配置器函式。
備註
樣板類別是呼叫簽章是 Ret(T1, T2, ..., TN)呼叫的包裝函式。 您可以在一個一致的包裝函式使用其封入各種可呼叫的物件。
有些成員函式採用命名預期目標物件的運算元。 您可以使用幾種方式指定這類運算元:
fn --可呼叫的物件 fn;在呼叫後 function 物件來保留 fn的複本。
fnref -- fnref.get()命名的可呼叫的物件;在呼叫後 function 物件儲存在 fnref.get()的參考
right --可呼叫的物件,如果沒有,則 function 物件 right保留。
npc --null 指標;在呼叫後 function 物件為 null
在所有情況下, INVOKE(f, t1, t2, ..., tN), f 可呼叫的物件,並 t1, t2, ..., tN 分別為型別 T1, T2, ..., TN 左值,必須是語式正確,則為,如果 Ret 不是空的,轉換為 Ret。
空的物件 function 不保留可呼叫之物件或參考可呼叫的物件。
建構函式
建構包裝函式是空的或儲存任意型別可呼叫之物件具有內建的簽章的。 |
Typedef
儲存可呼叫的物件的傳回型別。 |
成員函式
指派給這個函式物件的可呼叫的物件。 |
|
交換兩個可呼叫的物件。 |
|
測試,如果儲存可呼叫的物件可呼叫之所指定。 |
|
取得可呼叫之物件的型別資訊。 |
運算子
測試,如果儲存可呼叫的物件。 |
|
呼叫可呼叫的物件。 |
|
取代儲存可呼叫的物件。 |
需求
標題: <functional>
命名空間: std