Поделиться через


unary_negate (STL/CLR)

Описание класса шаблона функтором, при вызове возвращает логическое НЕ его, хранящихся функтором от аргумента. Он используется определяется объект функции с точки зрения его, хранящихся функтором.

template<typename Fun>
    ref class unary_negate
    { // wrap operator()
public:
    typedef Fun stored_function_type;
    typedef typename Fun::argument_type argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::UnaryDelegate<
        argument_type, result_type>
        delegate_type;

    unary_negate(Fun% functor);
    unary_negate(unary_negate<Fun>% right);

    result_type operator()(argument_type left);
    operator delegate_type^();
    };

Параметры

  • Функции
    Тип, хранящихся функтором.

Функции-члены

Определение типа

Описание

argument_type

Тип аргумента функтором.

delegate_type

Тип универсального метод-делегата.

result_type

Тип результата функтором.

Член

Описание

unary_negate

Построение функтором.

Оператор

Описание

operator()

Вычисляет нужную функцию.

delegate_type^

Возвращает функтором делегату.

Заметки

Описание класса шаблона функтором от аргумента, хранящий другое функтором от аргумента. Он определяет оператор operator() члена, что, когда объект вызывается как функция возвращается логическое НЕ, хранящихся функтором вызван с аргументом.

Можно также передать объект в качестве аргумента функции, тип которого delegate_type^ и он будет преобразован соответствующим образом.

Пример

// cliext_unary_negate.cpp 
// compile with: /clr 
#include <cliext/algorithm> 
#include <cliext/functional> 
#include <cliext/vector> 
 
typedef cliext::vector<int> Myvector; 
int main() 
    { 
    Myvector c1; 
    c1.push_back(4); 
    c1.push_back(0); 
    Myvector c3(2, 0); 
 
// display initial contents " 4 0" 
    for each (int elem in c1) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
 
// transform and display 
    cliext::logical_not<int> not_op; 
 
    cliext::transform(c1.begin(), c1.begin() + 2, c3.begin(), 
        cliext::unary_negate<cliext::logical_not<int> >(not_op)); 
    for each (int elem in c3) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
 
// transform and display with function 
    cliext::transform(c1.begin(), c1.begin() + 2, c3.begin(), 
        cliext::not1(not_op)); 
    for each (int elem in c3) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
    return (0); 
    } 
 
  

Требования

Заголовок:<cliext/functional>

Пространство имен: cliext

См. также

Ссылки

not1 (STL/CLR)