일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 세비야
- 마드리드
- 아펠가모 선릉
- HTTP #웹기술
- 스페인 준비물
- 코프링
- 코틀린 함수
- b-tree index
- HTTP
- git명령어
- elk
- 스프링 AOP
- 그라나다
- c# scv
- http상태코드
- 관심지향프로그래밍
- kotiln
- @Component
- 본식후기
- 아펠가모선릉
- 아펠가모
- sprintboot
- kopring
- 바르셀로나
- Kotlin
- 400에러
- Srping AOP
- 코틀린
- db index
- 스페인
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 세비야
- 마드리드
- 아펠가모 선릉
- HTTP #웹기술
- 스페인 준비물
- 코프링
- 코틀린 함수
- b-tree index
- HTTP
- git명령어
- elk
- 스프링 AOP
- 그라나다
- c# scv
- http상태코드
- 관심지향프로그래밍
- kotiln
- @Component
- 본식후기
- 아펠가모선릉
- 아펠가모
- sprintboot
- kopring
- 바르셀로나
- Kotlin
- 400에러
- Srping AOP
- 코틀린
- db index
- 스페인
- Today
- Total
끄적이는 메모장
[C++11] std::bind, std::placeholder 본문
#std::bind
참고 : http://egloos.zum.com/sweeper/v/3007638
std::bind(함수의주소, 인자1, 인자2, ....);
간단히 말하면 호출이 가능한 객체에 인수를 바인딩 하는 것
ex)
void hello(const string& s)
{
cout << s << endl;
}
int main()
{
....
auto func = std::bind(hello, "hello world");
func();
}
=> hello world
# std:placeholder
인자값을 새로운 함수의 인자로 받을 수 있도록 해준다.
ex1)
int sum(int a, int b, int c)
{
return a+b+c;
}
int main()
{
....
auto func1 = std::bind(sum, std::placeholder::_1, 2, 3);
cout<< func1(1) << endl;
}
=> 6
sum 함수의 두번째, 새번째 인수는 2와 3으로 고정이 되고 첫번째 인수만 변수로 받을 수 있도록 새로운 함수 func1이 정의 되었다고 생각할 수 있음
ex2)
int sum(int a, int b, int c)
{
return a+b*10+c;
}
int main()
{
....
auto func2 = std::bind(sum, std::placeholder::_1, std::placeholder::_2, 3);
cout<< func2(2,3) << endl;
}
=> 35
둘 이상의 placeholder를 사용할 수 있다.
ex3)
int sum(int a, int b, int c)
{
return a+b*10+c*100;
}
int main()
{
....
auto func3 = std::bind(sum, 1, std::placeholder::_2, std::placeholder::_1);
cout<< func3(2,3) << endl;
}
=> 231
func3에서 sum의 첫번째 인자는 이미 1로 고정 나머지 두 인자는 placeholder로 설정 됨
func3의 첫번째 인자는 원래 함수 sum의 세번째 인자가 되고
func3의 두번째 인자는 원래 함수 sum의 두번째 인자가 되고
즉, 고정되지 않은 남은 인자들의 순서를 palceholder로 변경할 수 있음
'C, C++, C# > C++ 공부' 카테고리의 다른 글
[C++11] std::enable_shared_from_this (0) | 2018.06.07 |
---|---|
[C++11] mutex (0) | 2018.06.01 |
[C++11] lambda expression (0) | 2018.05.31 |
[C++11] range for loop (0) | 2018.05.30 |
[C++11] make_shared (0) | 2018.05.30 |