Namespaces
Variants

Named Requirements

From cppreference.net
C++ named requirements

์ด ํŽ˜์ด์ง€์— ๋‚˜์—ด๋œ ๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ(named requirements) ์€ C++ ํ‘œ์ค€์˜ ๊ทœ๋ฒ”์  ํ…์ŠคํŠธ์—์„œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋Œ€ ์‚ฌํ•ญ์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ…œํ”Œ๋ฆฟ์ด ์ด๋Ÿฌํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ํ…œํ”Œ๋ฆฟ ์ธ์ž๋กœ ์ธ์Šคํ„ด์Šคํ™”๋˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ์ฑ…์ž„์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ง€ํ‚ค์ง€ ์•Š์œผ๋ฉด ๋งค์šฐ ๋ณต์žกํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ์ง„๋‹จ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์š”๊ตฌ ์‚ฌํ•ญ ์ค‘ ์ผ๋ถ€๋Š” C++20์—์„œ concepts ์–ธ์–ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต์‹ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

๊ธฐ๋ณธ

ํ•ด๋‹น ํƒ€์ž…์˜ ๊ฐ์ฒด๊ฐ€ ๊ธฐ๋ณธ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Œ์„ ๋ช…์‹œํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํ•ด๋‹น ํƒ€์ž…์˜ ๊ฐ์ฒด๊ฐ€ rvalue๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Œ์„ ๋ช…์‹œํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํ•ด๋‹น ํƒ€์ž…์˜ ๊ฐ์ฒด๊ฐ€ lvalue๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Œ์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํ•ด๋‹น ํƒ€์ž…์˜ ๊ฐ์ฒด๊ฐ€ rvalue๋กœ๋ถ€ํ„ฐ ํ• ๋‹น๋  ์ˆ˜ ์žˆ์Œ์„ ๋ช…์‹œํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํ•ด๋‹น ํƒ€์ž…์˜ ๊ฐ์ฒด๊ฐ€ lvalue๋กœ๋ถ€ํ„ฐ ํ• ๋‹น๋  ์ˆ˜ ์žˆ์Œ์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํ•ด๋‹น ํƒ€์ž…์˜ ๊ฐ์ฒด๊ฐ€ ํŒŒ๊ดด๋  ์ˆ˜ ์žˆ์Œ์„ ๋ช…์‹œํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)

ํƒ€์ž… ์†์„ฑ

์ฐธ๊ณ : ํ‘œ์ค€์€ ์ด ํ•˜์œ„ ๋ฒ”์ฃผ์— ์ง€์ •๋œ ์ด๋ฆ„์˜ ๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ •์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๋“ค์€ ํ•ต์‹ฌ ์–ธ์–ด์— ์˜ํ•ด ์ •์˜๋œ ์œ ํ˜• ๋ฒ”์ฃผ์ž…๋‹ˆ๋‹ค. ์ผ๊ด€์„ฑ์„ ์œ„ํ•ด์„œ๋งŒ ๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ ์—ฌ๊ธฐ์— ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฐฐ์—ด ํƒ€์ž…์ด๋‚˜ ํด๋ž˜์Šค ํƒ€์ž…์ด ์•„๋‹Œ ๊ฐ์ฒด ํƒ€์ž…
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
(C++20์—์„œ ์‚ฌ์šฉ ์ค‘๋‹จ๋จ)
POD (Plain Old Data) ํƒ€์ž…, C ์–ธ์–ด์™€ ํ˜ธํ™˜ ๊ฐ€๋Šฅ struct
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์ด๋Ÿฌํ•œ ํƒ€์ž…์˜ ๊ฐ์ฒด๋“ค์€ ๊ธฐ๋ณธ ๋ฐ”์ดํŠธ๋ฅผ ๋ณต์‚ฌํ•œ ํ›„์—๋„ ๊ทธ ๊ฐ’๋“ค์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
(C++11) (C++26์—์„œ ์‚ฌ์šฉ ์ค‘๋‹จ๋จ)
์ด ์œ ํ˜•์˜ ๊ฐ์ฒด๋“ค์€ ์‚ฌ์†Œํ•˜๊ฒŒ ์ƒ์„ฑ๋˜๊ณ  ๋ณต์‚ฌ๋  ์ˆ˜ ์žˆ์Œ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์ด ํƒ€์ž…๋“ค์€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ์™€์˜ ํ†ต์‹ ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
์ด ์œ ํ˜•์˜ ๊ฐ์ฒด๋“ค์€ ์•”๋ฌต์ ์œผ๋กœ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ ์ˆ˜๋ช…์ด ์•”๋ฌต์ ์œผ๋กœ ์‹œ์ž‘๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ „์ฒด

๋ถˆ๋ฆฐ ์—ฐ์‚ฐ ( operator && , operator || , ๋ฐ operator ! )์ด ์ผ๋ฐ˜์ ์ธ ์˜๋ฏธ๋ก ์„ ๊ฐ€์ง
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
operator== ๋Š” ๋™์น˜ ๊ด€๊ณ„์ž…๋‹ˆ๋‹ค
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
operator< ๋Š” ์—„๊ฒฉํ•œ ์•ฝ ์ˆœ์„œ ๊ด€๊ณ„์ž…๋‹ˆ๋‹ค
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
๋น„ํ•œ์ • ๋น„๋ฉค๋ฒ„ ํ•จ์ˆ˜ ํ˜ธ์ถœ swap ( ) ๋กœ ๊ตํ™˜ ๊ฐ€๋Šฅ
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
LegacyIterator ๋ฅผ ์—ญ์ฐธ์กฐํ–ˆ์„ ๋•Œ Swappable ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•˜๋Š”
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
null ๊ฐ’์„ ์ง€์›ํ•˜๋Š” ํฌ์ธํ„ฐ์™€ ์œ ์‚ฌํ•œ ํƒ€์ž…
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
(C++11)
์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ง„ ์ž…๋ ฅ์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ถœ๋ ฅ์„ ๋‚ผ ํ™•๋ฅ ์ด ๋‚ฎ์€ FunctionObject
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํ• ๋‹น ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ํด๋ž˜์Šค ํƒ€์ž…
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ตฌ๋ฌธ์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํ˜ธ์ถœ ์—ฐ์‚ฐ์ด ์ •์˜๋œ ํƒ€์ž…
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์ธ์ž๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ์ธ์ž์— ๋Œ€ํ•ด bool ๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” FunctionObject
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
๋‘ ์ธ์ž๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  bool ๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” FunctionObject
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์ˆœ์„œ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜๋Š” BinaryPredicate
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)

์ปจํ…Œ์ด๋„ˆ

๋ฐ˜๋ณต์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์–‘๋ฐฉํ–ฅ ๋ฐ˜๋ณต์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํ• ๋‹น์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์„ ํ˜•์œผ๋กœ ์ €์žฅ๋œ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ์ปจํ…Œ์ด๋„ˆ
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
์ธ์ ‘ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ์š”์†Œ๊ฐ€ ์ €์žฅ๋œ ์ปจํ…Œ์ด๋„ˆ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํ‚ค์™€ ์—ฐ๊ด€์‹œ์ผœ ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
ํ‚ค์™€ ์—ฐ๊ด€์‹œ์ผœ ๋ฒ„ํ‚ท์— ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์ปจํ…Œ์ด๋„ˆ ์š”์†Œ
์š”์†Œ๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ €์žฅ ๊ณต๊ฐ„์—์„œ ๊ธฐ๋ณธ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Œ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์š”์†Œ๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ €์žฅ์†Œ์—์„œ ๋ณต์‚ฌ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Œ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์š”์†Œ๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ €์žฅ์†Œ์—์„œ ์ด๋™ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Œ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์š”์†Œ๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ €์žฅ ๊ณต๊ฐ„์—์„œ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Œ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
(C++11)
์š”์†Œ๊ฐ€ ํ• ๋‹น์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ๊ดด๋  ์ˆ˜ ์žˆ์Œ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)

Iterator

์ผ๋ถ€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋‚ด์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋…
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ณต์ž
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ณต์ž
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ฝ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ณต์ž
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์ฆ๊ฐ€์™€ ๊ฐ์†Œ๊ฐ€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•œ ๋ฐ˜๋ณต์ž
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์ƒ์ˆ˜ ์‹œ๊ฐ„์— ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ณต์ž
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์—ฐ์†์ ์œผ๋กœ ํ• ๋‹น๋œ ์š”์†Œ์— ๋Œ€ํ•œ ๋ฐ˜๋ณต์ž
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์ƒ์ˆ˜ ํ‘œํ˜„์‹ ํ‰๊ฐ€ ์ค‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ณต์ž
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)

์ŠคํŠธ๋ฆผ I/O ํ•จ์ˆ˜

์„ ํ–‰ ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ๊ฑด๋„ˆ๋›ฐ์ง€ ์•Š๊ณ  ์ฒ˜๋ฆฌ๋œ ๋ฌธ์ž ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ŠคํŠธ๋ฆผ ์ž…๋ ฅ ํ•จ์ˆ˜
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์„ ํ–‰ ๊ณต๋ฐฑ์„ ๊ฑด๋„ˆ๋›ฐ๋Š” ์ŠคํŠธ๋ฆผ ์ž…๋ ฅ ํ•จ์ˆ˜
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
๊ธฐ๋ณธ ์ŠคํŠธ๋ฆผ ์ถœ๋ ฅ ํ•จ์ˆ˜
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ failbit๋ฅผ ์„ค์ •ํ•˜๊ณ  ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ŠคํŠธ๋ฆผ ์ถœ๋ ฅ ํ•จ์ˆ˜
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)

ํฌ๋งคํ„ฐ

์ฃผ์–ด์ง„ ์„œ์‹ ์ธ์ˆ˜ ํƒ€์ž…๊ณผ ๋ฌธ์ž ํƒ€์ž…์— ๋Œ€ํ•œ ์„œ์‹ ์ž‘์—…์„ ์ถ”์ƒํ™”ํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
(C++20)
ํฌ๋งคํŒ… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜๋“ค์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)

๋‚œ์ˆ˜ ์ƒ์„ฑ

์ •์ˆ˜ ์‹œํ€€์Šค๋ฅผ ์†Œ๋น„ํ•˜์—ฌ 32๋น„ํŠธ ๋ถ€ํ˜ธ ์—†๋Š” ๊ฐ’๋“ค์˜ ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
๊ท ์ผ ๋ถ„ํฌ๋œ ๋ฌด์ž‘์œ„ ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
์‹œ๋“œ์— ์˜ํ•ด ์ •์˜๋˜๋Š” ๊ฒฐ์ •๋ก ์  UniformRandomBitGenerator
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
๋‹ค๋ฅธ RandomNumberEngine ์˜ ์ถœ๋ ฅ์„ ๋ณ€ํ™˜ํ•˜๋Š” RandomNumberEngine
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
์ฃผ์–ด์ง„ ์ˆ˜ํ•™์  ํ™•๋ฅ  ๋ฐ€๋„ ํ•จ์ˆ˜์— ๋”ฐ๋ผ ๋ถ„ํฌ๋œ ๋‚œ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)

๋™์‹œ์„ฑ

์‹คํ–‰ ์—์ด์ „ํŠธ(์ฆ‰, ์Šค๋ ˆ๋“œ)์— ๋Œ€ํ•œ ๋ฐฐํƒ€์  ์†Œ์œ ๊ถŒ ์˜๋ฏธ๋ก ์„ ์ œ๊ณตํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
(C++11)
์‹œ๋„๋œ ์ž ๊ธˆ ํš๋“์„ ์ง€์›ํ•˜๋Š” BasicLockable
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์‹œ๊ฐ„ ์ œํ•œ ์ž ๊ธˆ ํš๋“์„ ์ง€์›ํ•˜๋Š” Lockable
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
์‹คํ–‰ ์—์ด์ „ํŠธ(์ฆ‰, ์Šค๋ ˆ๋“œ)์— ๋Œ€ํ•œ ๊ณต์œ  ์†Œ์œ ๊ถŒ ์˜๋ฏธ๋ก ์„ ์ œ๊ณตํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์‹œ๊ฐ„ ์ œํ•œ ์ž ๊ธˆ ํš๋“์„ ์ง€์›ํ•˜๋Š” SharedLockable
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
(C++11)
๋ฐ์ดํ„ฐ ๊ฒฝ์Ÿ๊ณผ ์ˆœ์ฐจ์  ์ผ๊ด€์„ฑ ๋™๊ธฐํ™”๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” Lockable
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
(C++11)
๋ฐ์ดํ„ฐ ๊ฒฝ์Ÿ๊ณผ ์ˆœ์ฐจ์  ์ผ๊ด€์„ฑ ๋™๊ธฐํ™”๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” TimedLockable
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
๊ณต์œ  ์†Œ์œ ๊ถŒ ์˜๋ฏธ๋ก ์„ ์ง€์›ํ•˜๋Š” Mutex
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
๊ณต์œ  ์†Œ์œ ๊ถŒ ์˜๋ฏธ๋ก ์„ ์ง€์›ํ•˜๋Š” TimedMutex
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)

๋ฒ”์œ„

FunctionObject ๊ฐ€ viewable_range ์™€ ์ถ”๊ฐ€ ์ธ์ˆ˜๋“ค๋กœ๋ถ€ํ„ฐ ๋ฒ”์œ„ ์–ด๋Œ‘ํ„ฐ ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฐ์ฒด
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž๋ฅผ ์ง€์›ํ•˜๋Š” FunctionObject
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)

๋‹ค์ฐจ์› ๋ทฐ ์‚ฌ์šฉ์ž ์ง€์ •

๋‹ค์ฐจ์› ์ธ๋ฑ์Šค์˜ ๋งคํ•‘์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค mdspan
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
LayoutMapping ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์ •์ฑ…
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
mdspan ์—์„œ ๋ฐ์ดํ„ฐ ํ•ธ๋“ค์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๋Š” ์ •์ฑ…
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)

๊ธฐํƒ€

ํƒ€์ž…์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
๋‘ ํƒ€์ž… ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์„ค๋ช…ํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
ํƒ€์ž…์˜ ์†์„ฑ์„ ์ˆ˜์ •ํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
(C++11)
์ง€์† ์‹œ๊ฐ„, ์‹œ๊ฐ„ ์ , ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ ์‹œ๊ฐ„ ์ ์„ ์–ป๋Š” ํ•จ์ˆ˜๋ฅผ ์ง‘ํ•ฉ์ ์œผ๋กœ ํฌํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
์˜ˆ์™ธ๋ฅผ ๋˜์ง€์ง€ ์•Š๋Š” Clock
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
๋ฌธ์ž ํƒ€์ž…์„ ์œ„ํ•œ ํƒ€์ž…๊ณผ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•จ
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)
bitset, ์ •์ˆ˜ํ˜•, ๋˜๋Š” ์—ด๊ฑฐํ˜•
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
์ดˆ๊ธฐํ™”๊ฐ€ ํšจ๊ณผ์ ์œผ๋กœ ํ• ๋‹น๊ณผ ๋™์ผํ•œ ํƒ€์ž…
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
์ •๊ทœ ํ‘œํ˜„์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํƒ€์ž…๊ณผ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค regular expressions library
(๋ช…๋ช…๋œ ์š”๊ตฌ์‚ฌํ•ญ)
constexpr ์ƒ์„ฑ์ž๋ฅผ ๊ฐ€์ง€๋Š” ํƒ€์ž…
(๋ช…๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ)