functional_modulus

functional_modulus (나머지 연산 함수 객체)

std::modulus는 나눗셈의 나머지를 계산하는 함수 객체예요. T 타입에 대해 operator%를 구현해요. 이 페이지에서는 std::modulus의 정의, 특수화, 멤버 타입, 멤버 함수와 사용 예시를 다룬답니다.

출처: cppreference

본문

정의

<functional> 헤더에 정의되어 있어요.

Defined in header <functional>
template < class T > struct modulus; (until C++14)
template < class T = void > struct modulus; (since C++14)

std::modulusT 타입에 대해 operator%를 구현하는 함수 객체예요. 두 인자를 나눈 나머지를 돌려주죠.

특수화 (Specializations)

표준 라이브러리는 T가 지정되지 않은 경우 std::modulus의 특수화를 제공해요. 이때 파라미터 타입과 반환 타입은 추론되도록 남겨둔답니다.

modulus<void> (C++14) x % y를 구현하며 파라미터와 반환 타입을 추론하는 함수 객체 (클래스 템플릿 특수화)

멤버 타입 (Member types)

Type Definition
result_type (C++17에서 deprecated, C++20에서 제거) T
first_argument_type (C++17에서 deprecated, C++20에서 제거) T
second_argument_type (C++17에서 deprecated, C++20에서 제거) T

C++11까지는 이러한 멤버 타입들이 std::binary_function<T, T, T>를 공개적으로 상속받아 얻어졌어요.

멤버 함수 (Member functions)

operator() 첫 번째 인자를 두 번째 인자로 나눈 나머지를 반환해요 (public member function)

std::modulus::operator()

T operator()( const T& lhs, const T& rhs ) const;

(C++14부터 constexpr)

lhsrhs로 나눈 나머지를 반환해요.

파라미터 (Parameters)

lhs, rhs - 서로 나누는 값들

반환값 (Return value)

lhs % rhs의 결과예요.

예외 (Exceptions)

구현 정의 예외를 던질 수 있어요.

가능한 구현 (Possible implementation)

constexpr T operator()( const T& lhs, const T& rhs ) const {
    return lhs % rhs;
}

같이 보기 (See also)

fmod fmodf fmodl (C++11) (C++11) 부동소수점 나눗셈 연산의 나머지 (함수)
remainder remainderf remainderl (C++11) (C++11) (C++11) 나눗셈 연산의 부호 있는 나머지 (함수)

더 알아보기 (Learn more)

cppreference