이름곡간
λ³€μˆ˜

컨셉 라이브러리 (C++20)

cppreference.com
< cpp
 
 
 

컨셉 λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μ»΄νŒŒμΌν•  λ•Œ ν…œν”Œλ¦Ώ 인자의 μœ νš¨μ„± 확인을 μˆ˜ν–‰ν•˜κ³  νƒ€μž…μ˜ νŠΉμ„±μ— κΈ°λ°˜ν•œ ν•¨μˆ˜ λΆ„λ₯˜ 생성에 μ‚¬μš©ν•  수 μžˆλŠ” 기초적인 μ»¨μ…‰μ˜ μ •μ˜λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 이 컨셉듀은 ν”„λ‘œκ·Έλž¨μ— λ™λ“±ν•œ 좔둠을 μœ„ν•œ κΈ°λ°˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

ν‘œμ€€ 라이브러리의 λŒ€λΆ€λΆ„μ˜ 컨셉은 ꡬ문 및 의미둠적 μš”κ΅¬ 사항을 κ°•μ œν•©λ‹ˆλ‹€. ν‘œμ€€ 컨셉은 ꡬ문 μš”κ΅¬μ‚¬ν•­μ„ μΆ©μ‘±ν•˜κ³ , μΆ©μ‘± μƒνƒœμ—μ„œ 의미둠적 μš”κ΅¬ 사항을 (μ–΄λ–€ 것이라도) κ°–μΆ”λŠ” 경우 λͺ¨λΈν™”λ˜μ—ˆλ‹€κ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

일반적으둜, μ»΄νŒŒμΌλŸ¬μ—μ„œλŠ” ꡬ문적인 μš”κ΅¬μ‚¬ν•­μ„ 검사할 수 μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ ν”„λ‘œκ·Έλž¨μ˜ νƒ€λ‹Ήμ„±μ΄λ‚˜ μ˜λ―Έκ°€ ν…œν”Œλ¦Ώ 인수의 μ‹œν€€μŠ€κ°€ 컨셉을 λͺ¨λΈλ§ν•˜λŠ”μ§€ 여뢀와 κ°œλ…μ΄ μΆ©μ‘±λ˜μ§€λ§Œ λͺ¨λΈλ§λ˜μ§€ μ•Šμ•˜λŠ”μ§€μ— 달렀 μžˆκ±°λ‚˜, μ‚¬μš©ν•  λ•Œ 의미둠적 μš”κ΅¬μ‚¬ν•­μ„ λ§žμΆ”μ§€ λͺ»ν•œλ‹€λ©΄ 잘λͺ»λœ ν”„λ‘œκ·Έλž¨μž…λ‹ˆλ‹€ no diagnostic required.

Defined in namespace std
핡심 μ–Έμ–΄ 컨셉
<concepts> 헀더에 μ •μ˜λ¨.
(C++20)
νƒ€μž…μ΄ λ‹€λ₯Έ νƒ€μž…κ³Ό λ™μΌν•˜λ‹€λŠ” 것을 λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ΄ λ‹€λ₯Έ νƒ€μž…μ„ μƒμ†ν•˜μ—¬ μƒμ„±λ˜μ—ˆμŒμ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ΄ μ•”μ‹œμ μœΌλ‘œ λ‹€λ₯Έ νƒ€μž…μœΌλ‘œ λ³€ν™˜λ  수 μžˆμŒμ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
두 개의 νƒ€μž…μ΄ κ³΅ν†΅μ˜ μ°Έμ‘° νƒ€μž…μ„ κ³΅μœ ν•¨μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
두 개의 νƒ€μž…μ΄ 곡톡 νƒ€μž…μ„ κ³΅μœ ν•¨μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
(C++20)
νƒ€μž…μ΄ μ •μˆ˜ν˜•(integral) νƒ€μž…μž„μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ΄ λΆ€ν˜ΈμžˆλŠ” μ •μˆ˜ν˜•(integral) νƒ€μž…μž„μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ΄ λΆ€ν˜Έμ—†λŠ” μ •μˆ˜ν˜•(integral) νƒ€μž…μž„μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ΄ λΆ€λ™μ†Œμˆ˜ν˜•(floating-point) νƒ€μž…μž„μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ΄ λ‹€λ₯Έ νƒ€μž…μ—μ„œ ν• λ‹Ή κ°€λŠ₯함을 λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
ν„°μ••μ•„ ꡐ체(swap) κ°€λŠ₯ν•˜κ±°λ‚˜ 두 νƒ€μž…μ΄ μ„œλ‘œ ꡐ체(swap) κ°€λŠ₯함을 λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ˜ 객체가 μ†Œλ©Έ κ°€λŠ₯함을 λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
ν•΄λ‹Ή νƒ€μž…μ˜ λ³€μˆ˜κ°€ 인자 νƒ€μž…μ˜ μ§‘ν•©μœΌλ‘œλΆ€ν„° μƒμ„±λ˜κ±°λ‚˜ μ§‘ν•©μœΌλ‘œ 묢일 수 μžˆμŒμ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
ν•΄λ‹Ή νƒ€μž…μ˜ 객체가 κΈ°λ³Έ 생성(default construct)이 κ°€λŠ₯함을 λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ˜ 객체가 이동 생성이 κ°€λŠ₯함을 λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ˜ 객체가 볡사 μƒμ„±λ˜μ—ˆκ±°λ‚˜ 이동 μƒμ„±λ˜μ—ˆμŒμ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
비ꡐ 컨셉
<concepts> 헀더에 μ •μ˜λ¨.
νƒ€μž…μ΄ Boolean μ»¨ν…μŠ€νŠΈλ‘œ μ‚¬μš© κ°€λŠ₯함을 λͺ…μ‹œν•©λ‹ˆλ‹€
(exposition-only concept) [edit]
μ—°μ‚°μž == κ°€ λ“±κ°€ κ΄€κ³„μž„μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ— λŒ€ν•œ 비ꡐ μ—°μ‚°μžκ°€ μˆœμ„œμ— λ”°λ₯Έ 값을 λ§Œλ“€μ–΄λ‚Ό 수 μžˆμŒμ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
<compare> 헀더에 μ •μ˜λ¨.
μ—°μ‚°μž <=> κ°€ μ£Όμ–΄μ§„ νƒ€μž…μ— λŒ€ν•΄ μΌκ΄€λœ 결과값을 λ§Œλ“€μ–΄λƒ„μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
객체 컨셉
<concepts> 헀더에 μ •μ˜λ¨.
(C++20)
νƒ€μž…μ˜ 객체가 이동 κ°€λŠ₯ν•˜κ±°λ‚˜ ꡐ체(swap) κ°€λŠ₯함을 λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
(C++20)
νƒ€μž…μ˜ 객체가 볡사, 이동, ꡐ체(swap)κ°€ κ°€λŠ₯함을 λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
νƒ€μž…μ˜ 객체가 볡사, 이동, ꡐ체(swap), κΈ°λ³Έ 생성이 κ°€λŠ₯함을 λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
(C++20)
객체가 κ·œμΉ™μ , λ‹€μ‹œ 말해, semiregular 이고 equality_comparable 함을 λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
호좜 κ°€λŠ₯ 컨셉
<concepts> 헀더에 μ •μ˜λ¨.
호좜 κ°€λŠ₯ν•œ νƒ€μž…μ΄ μ£Όμ–΄μ§„ 인자(argument)μ’…λ₯˜μ˜ μ§‘ν•©μœΌλ‘œ 호좜될 수 μžˆμŒμ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
(C++20)
호좜 κ°€λŠ₯ν•œ νƒ€μž…μ΄ Boolean μ„œμˆ μž„μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
(C++20)
호좜 κ°€λŠ₯ν•œ νƒ€μž…μ΄ 이진(binary) κ΄€κ³„μž„μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
relation이 λ“±κ°€ κ΄€κ³„μž„μ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]
relation이 μ—„κ²©νžˆ μ•½ν•œ μˆœμ„œ(strict weak ordering) 관계에 놓여 μžˆμŒμ„ λͺ…μ‹œν•©λ‹ˆλ‹€
(concept) [edit]

μΆ”κ°€ 컨셉은 반볡자 라이브러리, μ•Œκ³ λ¦¬μ¦˜ 라이브러리, λ²”μœ„ λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.