Шаблонний клас std::logical_or призначений для порівняння двох об’єктів. Клас призначений для створення примірників функціональних об’єктів, тобто таких, які мають перевантажений оператор дужок (виклик функції). Оголошення класу виглядає приблизно наступним чином:
template <class T> struct logical_or:
  binary_function <T,T,bool> 
{
  bool operator() (const T& x, const T& y) const 
  { return x||y ; }
} ;
Перевантажений оператор дужок повертає true, якщо значення параметру x або/i значення параметру являються еквівалентними значенню true, і false у іншому випадку. Щоб використовувати клас, необхідно у код підключити файл functional:
#include <functional> /* усе корисне разом з std::logical_or */

Приклади

Приклад #1

Розглянемо найпростіший приклад використання класу - пряме застосування до значення зміних.
#include <functional> /* logical_or */
#include <iostream> /* об'єкт cout */
using namespace std ; /* пишемо усе без std */

/* головна функція програми*/
int main (int argc, char** argv) 
{
  /* створюємо піддослідний примірник класу */
  logical_or <int> dpred ;
  
  /* створюємо змінні для збереження значень */
  bool a = true ,
       b = false ;
  
  /* тестуємо значення предикату
  ** відносно змінних */
  cout << a << " OR " << b << " : " << dpred (a, b) << endl ;
  
  /* змінюємо значення */
  a = false ;
  
  /* повторно тестуємо предикат */
  cout << a << " OR " << b << " : " << dpred (a, b) << endl ;
  
  return 0 ;
}
Вивід програми: cpp_std_logical_or_sample1-cxx
Категорії: