3 可呼叫物件包裝器 std function

2022-05-08 14:30:07 字數 1894 閱讀 1004

std::function是可呼叫物件的包裝器。它是乙個類模板,可以容納除了類成員(函式)指標之外的所有可呼叫物件。通過指定它的模板引數,它可以用統一的方式處理函式,函式物件,函式指標,並允許儲存和延遲執行它們。

(1)包裝普通函式

#include "

stdafx.h

"#include

#include

using

namespace

std;

int g_minus(int i, int

j)int

main()

(2)包裝模板函式

#include "

stdafx.h

"#include

#include

using

namespace

std;

template

t g_minus(t i, t j)

intmain()

(3)包裝lambda表示式

#include "

stdafx.h

"#include

#include

using

namespace

std;

auto g_minus = (int i, int j);

intmain()

(4)包裝函式物件

1)非模板型別:

#include #include 

using

namespace

std;

struct

minus

};int

main()

2)模板型別:

#include #include 

using

namespace

std;

template

struct

minus

};int

main()

(5)包裝類靜態成員函式

1)非模板型別:

#include "

stdafx.h

"#include

#include

using

namespace

std;

class

math

};int

main()

2)模板型別:

#include "

stdafx.h

"#include

#include

using

namespace

std;

class

math

};int

main()

(6)包裝類物件成員函式

1)非模板型別:

#include "

stdafx.h

"#include

#include

using

namespace

std;

class

math

};int

main()

2)模板型別:

#include "

stdafx.h

"#include

#include

using

namespace

std;

class

math

};int

main()

可呼叫物件

我們可以向演算法傳遞任何類別的可呼叫物件 函式,函式指標,過載了函式呼叫運算子的類,lambda 表示式,bind 函式。函式物件 1 如果類過載了函式呼叫運算子,則我們可以像使用函式一樣使用該類的物件。因為這樣的類同時也能儲存狀態,所以與普通函式相比他們更加靈活。例 struct absint i...

可呼叫物件

在python中可以用callable函式檢視乙個物件是不是可呼叫 1 deffn 2print ha ha ha 34callable fn 5 true 乙個類被例項化後,這個例項物件是乙個不可呼叫物件 1 class fun 2def init self,name 3 self.name na...

python 可呼叫物件

compile函式允許程式設計師在執行時刻迅速生成 物件,然後就可以用exec語句或者內建函式eval 來執行這些物件或者對它們進行求值。乙個很重要的觀點是 exec和eval者可以執行字串格式的python 這也是與c 等靜態語言最重要的區別。compile的三個引數都是必須的,第一引數代表了要編...