Пространства имён
Варианты
Действия

std::function<R(Args...)>::target_type

Материал из cppreference.com
< cpp‎ | utility‎ | functional‎ | function
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Объекты функции
Функции обёртки
(C++11)
(C++11)
Применение частичных функций
(C++20)(C++23)
(C++11)
Вызов функции
(C++17)(C++23)
Объект идентичности функции
(C++20)
Обёртки ссылок
(C++11)(C++11)
Прозрачные обёртки операторов
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Отрицатели
(C++17)
Искатели
Ограниченные компараторы
Старые привязки и адаптеры
(до C++17*)
(до C++17*)
(до C++17*)
(до C++17*)
(до C++17*)(до C++17*)(до C++17*)(до C++17*)
(до C++20*)
(до C++20*)
(до C++17*)(до C++17*)
(до C++17*)(до C++17*)

(до C++17*)
(до C++17*)(до C++17*)(до C++17*)(до C++17*)
(до C++20*)
(до C++20*)
 
 
const std::type_info& target_type() const noexcept;
(начиная с C++11)

Возвращает тип сохранённой функции.

Содержание

[править] Параметры

(нет)

[править] Возвращаемое значение

typeid(T), если хранимая функция имеет тип T, иначе typeid(void)

[править] Пример

#include <functional>
#include <iostream>
 
int f(int a) { return -a; }
void g(double) {}
int main()
{
    // fn1 и fn2 имеют одинаковый тип, но их цели нет
    std::function<int(int)> fn1(f),
                            fn2([](int a) {return -a;});
    std::cout << fn1.target_type().name() << '\n'
              << fn2.target_type().name() << '\n';
 
    // начиная с C++17 могут помочь принципы вывода (CTAD)
    std::cout << std::function{g}.target_type().name() << '\n';
}

Возможный вывод:

PFiiE
Z4mainEUliE_
PFvdE

[править] Смотрите также

получает указатель на сохранённую цель
(public функция-элемент) [править]
typeid Запрашивает информацию о типе, возвращая объект std::type_info, представляющий тип.
содержит некоторую информацию о типе, сгенерированную реализацией.
Это класс, возвращаемый оператором typeid.
(класс) [править]