C++11의functionbind 리셋 메커니즘
using namespace std::placeholders;
1. 함수 유형:function<반환값(매개 변수 목록)> 함수 이름을 미리 설명할 수 있습니다.
function< int (int, double, string) > fn
성명 형식 없이 바로 bind 앞: auto fn = bind (...)
함수 매개변수에 대한 대응:
선언된 위치에 실제 함수의 매개변수를 사용합니다.
int test(double, string, int)
fn = bind(test,_2,_3,_1) -->test 매개 변수의 첫 번째 유형 double,function의_2 위치,
상수 매개 변수를 설정할 수도 있습니다. fn =bind(test, 3.5, "hello", 6);
2. bind 클래스의 구성원 함수:
bind(&A::print, &a, ...)
#include <iostream>
#include <string>
#include <functional>
using namespace std;
using namespace std::placeholders;
void test(int i, double d, const string &s)
{
cout << "i= " << i << " d= " << d <<" s= " << s << endl;
}
int test1(int i, double d, const string &s)
{
cout << "i= " << i << " d= " << d <<" s= " << s << endl;
return i;
}
int main(int argc, const char *argv[])
{
function<void( void )> fp;
string s = "foo";
int a = 3;
double b = 6.7;
fp = bind(&test, a, b, s);
fp();
function <void (int , const string&)> fp1;
double b2 = 4.6;
fp1 = bind(test, _1, b2, _2);
fp1(4, "kity");
function <int (int , const string&) > fp2;
fp2 = bind<int>(test1, _1, b2, _2);
int y = fp2(4, "kity");
cout << y << endl;
auto fn = bind(test, 10, 23.3, "heko");// function ,
fn();
auto ff = bind(test, _1, _3, _2);//bind i test _j
ff(12, "ppp", 12.5);
class A
{
public:
void print(int a, double x)
{
cout << a << " " << x << endl;
}
};
A a3;
auto fclass= bind(&A::print, &a3, 11, 7.7);
fclass();
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.