STL은 다음 세 가지 논리 연산 함수 객체 조건자를 제공한다.
- logical_and<T>: 이항 조건자로 && 연산
- logical_or<T>: 이항 조건자로 || 연산
- logical_not<T>: 단항 조건자로 ! 연산
논리 조건자는 일반적으로 T에 bool 형식을 지정한다. 일반적으로 피연산자의 논리 조건을 비교하기 때문이다.
//논리 조건자 logical_and 예제
template<typename T>
struct Logical_and: public binary_function<T,T,bool>
{
bool operator()(const T& left ,const T& right)const{
return left && right;
}
};
int main(){
int n=30;
logical_and<bool> oAnd;
cout<<oAnd(greater<int>()(n,10),less<int>()(n,50))<<endl;
cout<<oAnd.operator()(greater<int>()(n,10),less<int>()(n,50))<<endl;
cout<<logical_and<bool>()(greater<int>()(n,10),less<int>()(n,50))<<endl;
cout<<logical_and<bool>().operator()(greater<int>()(n,10),less<int>()(n,50))<<endl;
return 0;
}