Lyn
조회 수 5642 추천 수 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
번호 제목 글쓴이 날짜 조회 수
119 Enhanced C++ debugging info at VS2012 over Lyn 2016.10.22 2598
118 사이트에서 http2 프로토콜을 지원 하기 시작 했습니다. Lyn 2016.10.01 4618
117 [연속기획UD] 4. INIPay Plugin file Lyn 2016.09.08 2669
116 where check http/2 online Lyn 2016.09.07 2328
115 how to rebuild ngnix with new version openssl Lyn 2016.09.07 2679
114 사이트에 SSL 인증서를 적용 했습니다... 적용 방법 Lyn 2016.09.07 2294
113 add "open as administrator" menu for gnome file explorer(nautilus) file Lyn 2016.06.25 4632
112 Visual C++ C4503 Warning Fix Lyn 2016.06.21 5028
111 New Calling Convention for AMD64(=EM64T, x64) and IA32(=x86) file Lyn 2016.04.17 5648
» What is the calling convention of the C++ lambda file Lyn 2016.04.11 5642
109 Nuget error after Visual Studio 2015 Update 2 install file Lyn 2016.04.04 5688
108 Geforce 364.72 Vulkan Support file Lyn 2016.03.31 4305
107 [연속기획UD] 3. OpenVPN GUI Client file Lyn 2016.03.14 5048
106 How to Windows Disk Drive Performance Counter On Lyn 2016.03.12 3629
105 [연속기획UD] 2. NAVER Font Installer file Lyn 2016.03.06 4936
104 [연속기획UD] 1. Windows Service Manager file Lyn 2016.03.06 4608
103 [연속기획UD] 윈도우 Desktop Application 의 Unicode, High DPI 를 신경씁시다 Lyn 2016.03.06 4503
102 Windows 10 network priority change file Lyn 2016.02.16 3088
101 VMWare 12 + Windows 10 Bug file Lyn 2016.01.03 3446
100 C++11 Type Traits. 라이브러리가 프로그래머의 제어에서 벗어나다 1 file Lyn 2015.12.30 5132
Board Pagination Prev 1 ... 2 3 4 5 6 7 ... 8 Next
/ 8