목록C++20 (1)
Coding Memo
[C++20] concepts - requires
C++20에서 추가된 Concepts의 기능인 requires에 대해서 간단히 정리해보자. requires는 C#에 비유하자면 where와 비슷한 키워드라고 생각할 수 있을 것 같다.where가 C#에서 제레릭 타입에 대한 조건을 지정하듯이,C++에서도 템플릿 타입에 대해 조건을 지정할 수 있다. Concepts 도입 전에는 SFINAE(Substitution Failure Is Not An Error)를 이용해, 템플릿 타입을 제약했었다. 그러나 C++20 이후에는, 템플릿에서 requires를 이용하여 타입에 대한 제약 조건을 쉽고 직관적으로 지정할 수 있다. 먼저 일반적인 코드를 확인해보자.struct A {};template T add(T a, T b){ return a + b;}int main(..
Language/C++
2024. 10. 2. 23:21