Skip to content

C++:Functor

함수자라고도 불리는 STL 펑터(Functor)는 것은 함수 객체를 뜻하는 것으로 함수처럼 operator()와 함께 사용할 수 있는 객체이다.

Syntax

아래와 같이 표현할 수 있다.

class FunctorClass
{
public:
    return-type operator () ( parameters... )
    {
        // do something...
    }
};

장점

Functor는 다음과 같은 세 가지 장점을 가지고 있다.

  • Functor는 상태를 가질 수 있다. 즉, 사용자는 같은 Functor에 대해 동시에 다른 상태를 가질 수 있다.
  • Functor는 자신만의 타입을 가진다. 한 마디로 타입으로 사용할 수 있다는 것이다. 이는 Functor가 타입으로써 템플릿 인자로 사용될 수 있음을 의미한다.
  • Functor는 함수포인터(FunctionPointer)보다 빠르다.1

Favorite site

References