標準庫bind函式

2021-09-25 20:52:08 字數 1528 閱讀 4445

1.作用

bind可以看做乙個函式介面卡,它接受乙個可呼叫物件,生成乙個新的可呼叫物件來適應原物件的引數列表。

2.語法

auto newcallable =

bind

(callable, arg_list)

;

arg_list是乙個逗號分割的引數列表,對應給定的callable引數。當我們呼叫newcallable時,newcallable會呼叫callable並傳遞給它arg_list中的引數。

bool

check_size

(const string& str,

int sz)

auto newcallable =

bind

(check_size, placeholders::_1,6)

;cout <<

newcallable

("hello world"

)<< endl;

//output:1

3.使用注意事項
bool

is_shorter

(const string& str1,

const string& str2)

auto newcallable =

bind

(is_shorter, placeholders::_2, placeholders::_1)

;//is_shorter(a, b) 等效於 newcallable(b, a)

值繫結

int i =5;

auto newcallable =

bind

(check_size, placeholders::_1, i));

cout <<

newcallable

("hello world"

)<< endl;

//1 i =20;

cout <<

newcallable

("hello world"

)<< endl;

//1

引用繫結

int i =5;

auto newcallable =

bind

(check_size, placeholders::_1,

ref(i));

cout <<

newcallable

("hello world"

)<< endl;

//1 i =20;

cout <<

newcallable

("hello world"

)<< endl;

//1

C 標準庫bind函式

上篇部落格在為大家介紹lambda是先由find if函式引入問題,由於find if函式的第三個引數所要求的可呼叫物件只能由乙個謂詞,所以我們最後選擇的解決方法是用lambda表示式。那麼此問題還有其他的解決方法麼?本篇部落格我就為大家帶來新的解決方法bind函式 bind函式的最根本的作用就是可...

C 標準庫bind函式知一二

對可呼叫物件 函式指標,仿函式,lambda表示式等 進行引數繫結,c 11提供了名為bind的標準庫函式,它定義在標頭檔案functional中。bind函式可以看作是乙個通用的函式介面卡,它可以接受乙個可呼叫物件,生成乙個新的可呼叫物件來 適應 原物件的引數列表。呼叫bind的一般形式為 aut...

bind()函式 listen()函式

bind 函式 include include int bind int sockfd,const struct sockaddr addr,socklen t addrlen 12 3sockfd是返回socket函式的返回值 addr 傳入引數 struct sockaddr addr addr...