std::experimental::function<R(Args...)>:: function
|
function
(
)
noexcept
;
|
(1) | (техническая спецификация библиотеки fundamentals) |
|
function
(
std::
nullptr_t
)
noexcept
;
|
(2) | (техническая спецификация библиотеки fundamentals) |
|
function
(
const
function
&
other
)
;
|
(3) | (техническая спецификация библиотеки fundamentals) |
|
function
(
function
&&
other
)
;
|
(4) | (техническая спецификация библиотеки fundamentals) |
|
template
<
class
F
>
function ( F f ) ; |
(5) | (техническая спецификация библиотеки fundamentals) |
| (6) | ||
|
template
<
class
Alloc
>
function ( std:: allocator_arg_t , const Alloc & alloc ) noexcept ; |
(техническая спецификация библиотеки fundamentals) | |
|
function
(
std::
allocator_arg_t
,
const allocator_type & alloc ) noexcept ; |
(техническая спецификация библиотеки fundamentals v3) | |
| (7) | ||
|
template
<
class
Alloc
>
function
(
std::
allocator_arg_t
,
const
Alloc
&
alloc,
|
(библиотека fundamentals TS) | |
|
function
(
std::
allocator_arg_t
,
const
allocator_type
&
alloc,
std:: nullptr_t ) noexcept ; |
(библиотека fundamentals TS v3) | |
| (8) | ||
|
template
<
class
Alloc
>
function
(
std::
allocator_arg_t
,
const
Alloc
&
alloc,
|
(техническая спецификация библиотеки fundamentals) | |
|
function
(
std::
allocator_arg_t
,
const
allocator_type
&
alloc,
const function & other ) ; |
(техническая спецификация библиотеки fundamentals v3) | |
| (9) | ||
|
template
<
class
Alloc
>
function
(
std::
allocator_arg_t
,
const
Alloc
&
alloc,
|
(техническая спецификация библиотеки fundamentals) | |
|
function
(
std::
allocator_arg_t
,
const
allocator_type
&
alloc,
function && other ) ; |
(техническая спецификация библиотеки fundamentals v3) | |
| (10) | ||
|
template
<
class
F,
class
Alloc
>
function ( std:: allocator_arg_t , const Alloc & alloc, F f ) ; |
(TS библиотечных фундаментальных компонентов) | |
|
function
(
std::
allocator_arg_t
,
const
allocator_type
&
alloc, F f
)
;
|
(TS библиотечных фундаментальных компонентов v3) | |
Создает объект
std::experimental::function
из различных источников.
Args...
и возвращаемого типа
R
.
function
может использовать.
Эти конструкторы рассматривают
alloc
как стираемый тип аллокатора (см. ниже).
(до TS библиотечных основ v3)
|
После создания через (1-5) , this - > get_memory_resource ( ) возвращает то же значение, что и std:: experimental :: pmr :: get_default_resource ( ) во время создания. |
(library fundamentals TS)
(until library fundamentals TS v3) |
|
После создания через (1-3) и (5) , * this хранит созданный по умолчанию std:: pmr :: polymorphic_allocator <> . |
(library fundamentals TS v3) |
Когда target является указателем на функцию или std::reference_wrapper , гарантируется оптимизация малых объектов, то есть эти цели всегда хранятся непосредственно внутри объекта std::experimental::function , без выполнения динамического выделения памяти. Другие крупные объекты могут создаваться в динамически выделяемой памяти и доступны объекту std::experimental::function через указатель.
Если конструктор перемещает или копирует функциональный объект, включая экземпляр
std::experimental::function
, то это перемещение или копирование выполняется через
using-allocator construction
с аллокатором
this
-
>
get_memory_resource
(
)
(until library fundamentals TS v3)
this
-
>
get_allocator
(
)
(library fundamentals TS v3)
.
Содержание |
Аллокатор с стиранием типа
Конструкторы
function
принимающие аргумент аллокатора
alloc
рассматривают этот аргумент как типонезависимый аллокатор. Указатель на ресурс памяти, используемый
function
для выделения памяти, определяется с использованием аргумента аллокатора (если он указан) следующим образом:
Тип
alloc
|
Значение указателя на ресурс памяти |
| Отсутствует (аллокатор не указан при конструировании) | Значение std:: experimental :: pmr :: get_default_resource ( ) на момент конструирования. |
| std::nullptr_t | Значение std:: experimental :: pmr :: get_default_resource ( ) на момент конструирования. |
|
Тип указателя, приводимый к
std:: experimental :: pmr :: memory_resource * |
static_cast < std:: experimental :: pmr :: memory_resource * > ( alloc ) |
|
Специализация
std::experimental::pmr::polymorphic_allocator |
alloc. resource ( ) |
| Любой другой тип, удовлетворяющий Allocator требованиям |
Указатель на значение типа
std::
experimental
::
pmr
::
resource_adaptor
<
A
>
(
alloc
)
, где
A
- тип
alloc
. Указатель действителен только в течение времени жизни
function
объекта.
|
| Ни один из вышеперечисленных | Программа некорректна. |
Параметры
| other | - | функциональный объект, используемый для инициализации * this |
| f | - | вызываемый объект, используемый для инициализации * this |
| alloc | - | аллокатор, используемый для внутреннего выделения памяти |
| Требования к типам | ||
-
F
должен удовлетворять требованиям
Callable
и
CopyConstructible
.
|
||
Исключения
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |