functional_plus
functional_plus (덧셈 함수 객체)
std::plus는 덧셈 연산을 수행하는 함수 객체예요. 두 개의 T 타입 인스턴스에 대해 operator+를 호출하는 역할을 해요. C++14부터는 T를 지정하지 않으면 파라미터 타입과 반환 타입을 자동으로 추론하는 std::plus<void> 특수화도 제공된답니다.
출처: cppreference
본문
정의
<functional> 헤더에 정의되어 있어요.
template < class T > struct plus ;
C++14부터는 기본 템플릿 인자를 사용해요.
template < class T = void > struct plus ;
특수화 (Specializations)
표준 라이브러리는 T가 지정되지 않은 경우 std::plus의 특수화를 제공해요. 이 특수화는 파라미터 타입과 반환 타입을 추론하도록 남겨두지요.
| 특수화 | 설명 |
|---|---|
plus<void> (C++14) |
x + y를 구현하며 파라미터와 반환 타입을 추론하는 함수 객체 (클래스 템플릿 특수화) |
멤버 타입 (Member types)
| 타입 | 정의 |
|---|---|
result_type (C++17에서 폐지, C++20에서 제거) |
T |
first_argument_type (C++17에서 폐지, C++20에서 제거) |
T |
second_argument_type (C++17에서 폐지, C++20에서 제거) |
T |
이 멤버 타입들은 C++11까지는 std::binary_function<T, T, T>를 공개 상속하여 얻었어요.
멤버 함수 (Member functions)
| 함수 | 설명 |
|---|---|
operator() |
두 인자의 합을 반환해요 (공개 멤버 함수) |
std::plus::operator()
T operator ()( const T & lhs , const T & rhs ) const ;
C++14부터는 constexpr로 지정돼요.
lhs와 rhs의 합을 반환해요.
파라미터 (Parameters)
| 이름 | 설명 |
|---|---|
lhs, rhs |
합산할 값들이에요 |
반환값 (Return value)
lhs + rhs의 결과예요.
예외 (Exceptions)
구현 정의 예외를 던질 수 있어요.
가능한 구현 (Possible implementation)
constexpr T operator ()( const T & lhs , const T & rhs ) const { return lhs + rhs ; }