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...