|  | 
|      | 
|  | 
| Class template functionNBoost , The Boost C++ Libraries BoostBook Documentation Subset , Reference
  
   | 
| Постусловия: | < this->empty()> | 
| Броски: | Не буду бросать. | 
functionN(constfunctionN&f);>
| Пост-условия: | Содержит копию цели< f>, если она есть, или пуста, если<f.empty()>. | 
| Броски: | Не бросит, если не копирует цель< f>бросок. | 
functionN(functionN&&f);>
| Требуется: | совместимый компилятор C++11. | 
| Постусловия: | Переносит значение с< f>на<*this>. Если аргумент имеет свой функциональный объект, выделенный на кучу, его буфер будет назначен<*this>, оставляя аргумент пустым. | 
| Броски: | Не бросит, если аргумент не имеет своего функционального объекта, выделенного не на кучу и копирующего цель бросков< f>. | 
template<typenameF>functionN(Ff);>
| Требуется: | F — объект функции, который можно назвать из< this>. | 
| < *this>нацелен на копию<f>, если<f>не пуст, или<this->empty()>, если<f>пуст. | 
template<typenameF,typenameAllocator>functionN(Ff,Allocatoralloc);>
| Требует: | F является функциональным объектом, вызываемым из< this>, Распределитель является Распределителем. Копирующий конструктор и разрушитель Аллокатора не должны выбрасывать. | 
| Пост-условия: | < *this>нацелены на копию<f>, если<f>не пуст, или<this->empty()>, если<f>пуст. | 
| Эффекты: | Если требуется выделение памяти, для выделения этой памяти будет использоваться данный распределитель (или его копия). | 
functionN&operator=(constfunctionN&f);>
functionN&operator=(functionN&&f);>
| Требуется: | совместимый компилятор C++11. | 
| Постусловия: | Переместите значение от< f>к<*this>. Если аргумент имеет объект функции, выделенный на куче, его буфер будет назначен<*this>, оставляя аргумент пустым. | 
| Броски: | Не бросит, если аргумент не имеет своего функционального объекта, выделенного не на кучу и копирующего цель< f>бросков. | 
~functionN();>
| Эффекты: | Если< !this->empty()>уничтожает цель этого. | 
functionN capacityboolempty()const;>
| < false>, если<this>имеет цель, и<true>в противном случае. | |
| Броски: | Не буду бросать. | 
operatorsafe_bool()const;>
| < safe_bool>, который оценивает<false>в булевом контексте, когда<this->empty()>и<true>иначе. | |
| Бросает: | Не бросит. | 
booloperator!()const;>
functionN target accesstemplate<typenameFunctor>Functor*target(); template<typenameFunctor>constFunctor*target()const;>
| Возвращение: | Если< this>сохраняет цель типа<Functor>, возвращает адрес цели. В противном случае возвращает указатель NULL. | 
| Бросает: | Не буду бросать. | 
template<typenameFunctor>boolcontains(constFunctor&f)const;>
| Возврат: | < true>, если<this->target<Functor>()>не является NULL и<function_equal(*(this->target<Functor>()), f)> | 
conststd::type_info&target_type()const;>
| Возврат: | < typeid>объекта целевой функции, или<typeid(void)>, если<this->empty()>. | 
| Бросок: | Не буду бросать. | 
functionN invocationresult_typeoperator()(arg1_typea1,arg2_typea2,...,argN_typeaN)const;>
| Эффекты: | < f(a1, a2, ..., aN)>, где<f>является целью<*this> | 
| Возврат: | , если< R>является<void>, ничего не возвращается; в противном случае возвращается обратное значение вызова<f>. | 
| Бросает: | < bad_function_call>, если<this->empty()>. В противном случае, возможно, через любое исключение, брошенное целевой функцией<f>. | 
functionN comparison operatorstemplate<typenameT1,typenameT2,...,typenameTN,typenameFunctor> booloperator==(constfunctionN<T1,T2,...,TN>&f,Functorg); template<typenameT1,typenameT2,...,typenameTN,typenameFunctor> booloperator==(Functorg,constfunctionN<T1,T2,...,TN>&f); template<typenameT1,typenameT2,...,typenameTN,typenameFunctor> booloperator==(constfunctionN<T1,T2,...,TN>&f, reference_wrapper<Functor>g); template<typenameT1,typenameT2,...,typenameTN,typenameFunctor> booloperator==(reference_wrapper<Functor>g, constfunctionN<T1,T2,...,TN>&f); template<typenameT1,typenameT2,...,typenameTN,typenameU1,typenameU2, ...,typenameUN> voidoperator==(constfunctionN<T1,T2,...,TN>&f1, constfunctionN<U1,U2,...,UN>&f2);>
Возвращение:
f>хранит объект типа<Functor>и применяется одно из следующих условий:g>относится к типу<reference_wrapper<Functor>>и<f.target<Functor>() == g.get_pointer()>.g>не относится к типу<reference_wrapper<Functor>>и<function_equal(*(f.target<Functor>()),
            g)>.Примечания:
functionN>Объекты не равны.Обоснование:
safe_bool>открывает лазейку, в которой два<functionN>экземпляра могут быть сопоставлены через<==>, хотя это невозможно реализовать. Неопределенный<void
        operator==>закрывает лазейку и обеспечивает ошибку компиляции или времени ссылки.template<typenameT1,typenameT2,...,typenameTN,typenameFunctor> booloperator!=(constfunctionN<T1,T2,...,TN>&f,Functorg); template<typenameT1,typenameT2,...,typenameTN,typenameFunctor> booloperator!=(Functorg,constfunctionN<T1,T2,...,TN>&f); template<typenameT1,typenameT2,...,typenameTN,typenameFunctor> booloperator!=(constfunctionN<T1,T2,...,TN>&f, reference_wrapper<Functor>g); template<typenameT1,typenameT2,...,typenameTN,typenameFunctor> booloperator!=(reference_wrapper<Functor>g, constfunctionN<T1,T2,...,TN>&f); template<typenameT1,typenameT2,...,typenameTN,typenameU1,typenameU2, ...,typenameUN> voidoperator!=(constfunctionN<T1,T2,...,TN>&f1, constfunctionN<U1,U2,...,UN>&f2);>
| Возвращение: | Верно, когда< f>не хранит объект типа<Functor>или хранит объект типа<Functor>и применяется одно из следующих условий:
 | 
| Примечания: | < functionN>Объекты не равны. | 
| Обоснование: | Преобразование< safe_bool>открывает лазейку, при которой два<functionN>экземпляра могут быть сопоставлены через<!=>, хотя это не представляется возможным реализовать. Неопределенный<void
        operator!=>закрывает лазейку и обеспечивает ошибку компиляции или времени ссылки. | 
Статья Class template functionN раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.
| реклама |