Lyn
조회 수 5347 추천 수 0 댓글 0
Atachment
첨부 '1'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

지인이 물어 온 김에 정리 해 둡니다.

 

결론부터 말하면 C++ 의 Lambda 의 Calling Convention 은 상황에 맞춰 "그때그때 다르다" 입니다.
 

기본적으로 cdecl(물론 VC++ 프로젝트 설정에서 옵션을 바꾸면 다른 것도 가능합니다) 멤버여야 한다면 thiscall 그렇지 않으면 대입 되는 함수 포인터의 type 에 따라서 결정됩니다.
즉 원하는 형태로 대입만 하면 거기에 맞춰 적절히 컴파일 됩니다.

 

lambda.png

 

외부에 callback 함수를 넘길 때 stdcall 로 선언해야 하는 경우가 꽤 되는데(특히 윈도우 API들) 이 때도 부담없이 Lambda 를 사용 할 수 있습니다.

 

단 아쉽게도 auto 와의 조합은 제공하지 않는데, 

 

auto __stdcall f1 = [](int num1, int num2, int num3) { printf("%d %d %d\n", num1, num2, num3); };

 

와 같은 문법은 경고를 내며 __stdcall 이 무시됩니다... 

TAG •
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
117 [연속기획UD] 4. INIPay Plugin file Lyn 2016.09.08 2341
116 where check http/2 online Lyn 2016.09.07 2073
115 how to rebuild ngnix with new version openssl Lyn 2016.09.07 2171
114 사이트에 SSL 인증서를 적용 했습니다... 적용 방법 Lyn 2016.09.07 2062
113 add "open as administrator" menu for gnome file explorer(nautilus) file Lyn 2016.06.25 4364
112 Visual C++ C4503 Warning Fix Lyn 2016.06.21 4748
111 New Calling Convention for AMD64(=EM64T, x64) and IA32(=x86) file Lyn 2016.04.17 5411
» What is the calling convention of the C++ lambda file Lyn 2016.04.11 5347
109 Nuget error after Visual Studio 2015 Update 2 install file Lyn 2016.04.04 5419
108 Geforce 364.72 Vulkan Support file Lyn 2016.03.31 4063
107 [연속기획UD] 3. OpenVPN GUI Client file Lyn 2016.03.14 4761
106 How to Windows Disk Drive Performance Counter On Lyn 2016.03.12 3251
105 [연속기획UD] 2. NAVER Font Installer file Lyn 2016.03.06 4673
104 [연속기획UD] 1. Windows Service Manager file Lyn 2016.03.06 4332
103 [연속기획UD] 윈도우 Desktop Application 의 Unicode, High DPI 를 신경씁시다 Lyn 2016.03.06 4294
102 Windows 10 network priority change file Lyn 2016.02.16 2813
101 VMWare 12 + Windows 10 Bug file Lyn 2016.01.03 3180
100 C++11 Type Traits. 라이브러리가 프로그래머의 제어에서 벗어나다 1 file Lyn 2015.12.30 4606
99 Safe scanf 계열 함수의 함정. 자나깨나 크기조심 secret Lyn 2015.11.17 113
98 OpenVPN이 2.3.8 으로 업데이트 되면서 이것저것 바뀌었는데... 1 Lyn 2015.09.08 2610
Board Pagination Prev 1 ... 2 3 4 5 6 7 ... 8 Next
/ 8