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

Приклади

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

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