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::modulus는 T 타입에 대해 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)
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;
}
같이 보기 (See also)
fmod fmodf fmodl (C++11) (C++11) |
부동소수점 나눗셈 연산의 나머지 (함수) |
|---|---|
remainder remainderf remainderl (C++11) (C++11) (C++11) |
나눗셈 연산의 부호 있는 나머지 (함수) |