본문 바로가기

[ C/ C++ 프로그래밍 ]/[ STL ]

[ 혼연 정리 ] 함수객체- 5 [어뎁터 ]


ㅇ 어뎁터

이미 만들어진 컴포턴트의 구현은 그대로 활용하고 인터페이스만 조금 변경하여 컴포넌트를 일부 변형시키는 것이다.

STL이 제공하는 컴포넌트의 수가 많고 일반화되어 있기는 하지만 그래도 특수한 프로그래밍 환경에 두로 사용되기에는
결코 충분하지 않다. 그렇다고 컴포넌트의 수를 무한정 늘리기만 할 수 없으므로 기존 컴포넌트를 변경할 수 있는 어뎁터라는
방법을 제공한다. 어뎁터는 일반화된 컴포넌트의 용도를 더욱 확장하는 역할을 한다. 어뎁터는 컴포넌트, 반복자, 함수 객체에
대해 적용되며 다음과 같이 분류 할 수 있다.

 


함수 객체의 기능을 조금이라도 변경하려먼 어댑터를 적용할 수 있도록 만들어야 하는데 이런 함수 객체를 어댑터블(Adapter) 함수 객체라고 한다.
기능을 변경하는 어댑터는 대상 함수 객체가 취하는 인수의 타입은 무엇인지, 리턴타입은 무엇인지, 등 함수 객체에 대한 충분한 정보를 얻을 수 있어야 한다.
만드는 방법은 아주 쉬운데 functional 헤더 파일에 정의되어 있는 다음 두 템플릿 클래스 중 하나를 상속받으면 된다.