-
728x90๋ฐ์ํ
Syntax
[ captures ] ( params ) specs requires(optional) { body } (1) [ captures ] { body } (2) (until C++23) [ captures ] specs { body } (2) (since C++23) [ captures ] < tparams > requires(optional) ( params ) specs requires(optional) { body } (3) (since C++20) [ captures ] < tparams > requires(optional) { body } (4) (since C++20)
(until C++23)[ captures ] < tparams > requires(optional) specs { body } (4) (since C++2 ์บก์ณ ๋ธ๋ก : ์ฌ์ฉ ์ ์ธ๋ถ ๋ณ์๋ฅผ ์บก์ณํด ๋๋ค body ์์ ์ฌ์ฉ
-> ํ์ฌ ๋๋ค ํจ์ ํธ์ถ ์ ์บก์ณ๊ฐ ์๋๋ค๊ณ ์๋ฌ๊ฐ ๋๊ณ ์๋ ์ํฉ ํํ
์ฒ์์ ์ฌ์ฉํ ์บก์ฒ : this ํด๋น ํด๋์ค์ ๋ณ์ ์ฐธ์กฐ ๊ฐ๋ฅ
& ๋ณ์๋ช : ์ธ๋ถ ๋ณ์ ์ฐธ์กฐ ๋ฐ ์ด๊ธฐํ
ํจ์ ํฌ์ธํฐ
ํจ์ ํฌ์ธํฐ ์ด๋ก ์ ํญ์ ์์ํ๋ฐ ์ค๋ฌด์์ ๋ณด๋ฉด ๋งค์ผ ๋นํฉ์ค๋ฝ๋ค. ์ ํจ์ ํฌ์ธํฐ๋ฅผ ์ฐ๋์ง ๊ถ๊ธํด์ ์ฐพ์๋ณด๋ค ์๋ ๋ธ๋ก๊ทธ์ ๊ธ์ ๋ฐ๊ฒฌํ๋ค.
https://hwan-shell.tistory.com/87
ํจ์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ callback์ด๋ผ๊ณ ํ๋ค. callback์ ํจ์๊ฐ ํจ์๋ฅผ ๋ถ๋ฅด๋ ํ์์ด๋ค.
์ค๋ฌด๋ฅผ ํ๋ฉด์ ๋๋์ ์ ๋ค๋ค ์ค๋ฌด์์๋ getter, setter, callback๋ง ์๋ฉด ๋๋ค๊ณ ํ๋๋ฐ ๊ทธ๋์์ธ์ง ํฌ์ธํฐ๊ฐ ์ ๋ง ๋ง์ด ์ฐ์ด๋ ๊ฒ ๊ฐ๋ค. ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด, ๋ณต์ฌ๊ฐ ์ผ์ด๋๊ณ ์ฝ๋๋ ๊ธธ์ด์ง๊ณ ๋๋ผ๊ฐ ๋งํ๊ณ ..
ํจ์ ๊ฐ์ฒด
ํจ์ ๊ฐ์ฒด๋ ํจ์ ํฌ์ธํฐ์ ๋จ์ ์ ๋ณด์ํ ๊ฒ์ด๋ค.
ํจ์ ํฌ์ธํฐ๋ ์๋ ๋ช ํํ ํ์ ์ด ์๊ธฐ ๋๋ฌธ์ return type๊ณผ ๋งค๊ฐ๋ณ์๊ฐ ์ผ์นํ๋ ๊ฒ๋ค๋ง ์ฌ์ฉํ ์ ์์ด์ ์ ํ์ ์ด๋ค. ํ์ง๋ง ํจ์ ๊ฐ์ฒด๋ ์ด๋ค ํจ์ ๊ฐ์ฒด๊ฐ ์ฌ์ฉ๋ ์ง ์ ์ ์์ด์ inlineํ ํ ์ ์๋ค.
๋ค์ ๋๋ค๋ก ๋์์์, ๋๋ค๋ ํจ์ ๊ฐ์ฒด์ ํจ์ ํฌ์ธํฐ์ ์ฅ์ ๋ง ๊ฐ์ง๊ณ ์๋ค
๋๋ค์ ์ฅ์
1. class ์ ์ธ ํ์ x (์ฝ๋ ๊ธธ์ด ์ค์)
2. ํจ์ inline ๊ฐ๋ฅ
๋๋ค๋ ์ด๋ฆ์ ์์ง๋ง ๊ณ ์ ํ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์, ๋๋ค์ ์ด๋ฆ๊ณผ ์ด๋ค ํ์ ์ผ๋ก ์ ์๋์ด์๋์ง ๋ชฐ๋ผ๋ ์ปดํ์ผ ๊ณผ์ ์์ ๋๋ค๋ผ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ํ์ง๋ง ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด ๊ฐ์ ์ ๋ฌ์ด ๋๊ฑฐ๋ ๋ช ํํ ๋ช ์๊ฐ ์์ผ๋ฉด ์ผ๋ฐ ํจ์์ ๋ค๋ฆ์ด ์๋ค.
Reference
https://en.cppreference.com/w/cpp/language/lambda
https://hwan-shell.tistory.com/84
C++ Lambda ์ฌ์ฉ ์ด์ ์ ์ฌ์ฉ ๋ฐฉ๋ฒ
C++์๋ lambda๋ผ๋ ๋ฌธ๋ฒ์ด ์กด์ ํฉ๋๋ค. ์๋ ์ด lambda๋ boost๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๊ณตํ๋ ํจ์์์ง๋ง ์ง๊ธ์ modern c++๋ก ๋์ด๊ฐ๋ฉด์ ์ด ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ๊ฒ ๋์์ต๋๋ค. (ํ์ฌ modern c++์
hwan-shell.tistory.com
https://www.youtube.com/watch?v=mWgmBBz0y8c&ab_channel=TheCherno
728x90๋ฐ์ํ'๐ STUDY' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] cbegin, crbegin, cend, crend (0) 2022.12.05 ๋๊ธ