std::function
Материал из cppreference.com
< cpp | utility | functional
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Заголовочный файл <functional>
|
||
| template< class > class function; /* undefined */ |
(начиная с C++11) | |
| template< class R, class... Args > class function<R(Args...)> |
(начиная с C++11) | |
std::function класс шаблон общего назначения, полиморфные функции-оболочки. Экземпляры std::function может хранить, копировать, и ссылаться на любой вызываемый целевой - функции, лямбда-выражения, привязки выражений или других объектов функция. Original:
Class template
std::function is a general-purpose polymorphic function wrapper. Instances of std::function can store, copy, and invoke any callable target -- functions, лямбда-выражения, привязки выражений, or other function objects. The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Содержание |
[править] Член типов
| Type
Original: Type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
result_type
|
R
|
argument_type
|
T если sizeof...(Args)==1 и T является первым и единственным типом в Args... Original: T if sizeof...(Args)==1 and T is the first and only type in Args... The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
first_argument_type
|
T1 если sizeof...(Args)==2 и T1 является первой из двух типов в Args... Original: T1 if sizeof...(Args)==2 and T1 is the first of the two types in Args... The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
second_argument_type
|
T2 если sizeof...(Args)==2 и T2 является вторым из двух типов в Args... Original: T2 if sizeof...(Args)==2 and T2 is the second of the two types in Args... The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[править] Член функций
| создает новый экземпляр std::function Original: constructs a new std::function instance The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| разрушает std::function экземпляр Original: destroys a std::function instance The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| присваивает содержимое Original: assigns the contents The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| свопы содержание Original: swaps the contents The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| назначает новые цели Original: assigns a new target The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| проверяет, является ли действительным цель содержится Original: checks if a valid target is contained The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| вызывает в створ Original: invokes the target The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
Original: Target access The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
| получает typeid сохраненных цель std::function Original: obtains the typeid of the stored target of a std::function The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| получает указатель хранится цель std::function Original: obtains a pointer to the stored target of a std::function The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
[править] Не являющиеся членами функций
| (C++11) |
Специализируется std::swap алгоритм Original: specializes the std::swap algorithm The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (шаблон функции) |
| сравнивается с std::function std::nullptr Original: compares an std::function with std::nullptr The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (шаблон функции) | |
[править] Вспомогательные классы
| Специализируется черта std::uses_allocator типа Original: specializes the std::uses_allocator type trait The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (специализация шаблона класса) | |
[править] Пример
#include <functional> #include <iostream> struct Foo { Foo(int num) : num_(num) {} void print_add(int i) const { std::cout << num_+i << '\n'; } int num_; }; void print_num(int i) { std::cout << i << '\n'; } int main() { // store a free function std::function<void(int)> f_display = print_num; f_display(-9); // store a lambda std::function<void()> f_display_42 = []() { print_num(42); }; f_display_42(); // store the result of a call to std::bind std::function<void()> f_display_31337 = std::bind(print_num, 31337); f_display_31337(); // store a call to a member function std::function<void(const Foo&, int)> f_add_display = &Foo::print_add; Foo foo(314159); f_add_display(foo, 1); }
Вывод:
-9 42 31337 314160
[править] См. также
| (C++11) |
исключение при вызове пустой std::function Original: the exception thrown when invoking an empty std::function The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (класс) |
| (C++11) |
создает объект функции из указателя на член Original: creates a function object out of a pointer to a member The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (шаблон функции) |