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

From cppreference.com
< cpp‎ | utility‎ | functional‎ | function

const std::type_info& target_type() const noexcept; |  | (since C++11)

Returns the type of the stored function.

### Parameters

(none)

### Return value

typeid(T) if the stored function has type `T`, otherwise typeid(void)

### Example

Run this code

    #include <functional>
    #include <iostream>

    int f(int a) { return -a; }
    void g(double) {}
    int main()
    {
        // fn1 and fn2 have the same type, but their targets do not
        std::function<int(int)> fn1(f),
                                fn2([](int a) {return -a;});
        std::cout << fn1.target_type().name() << '\n'
                  << fn2.target_type().name() << '\n';

        // since C++17 deduction guides (CTAD) can avail
        std::cout << std::function{g}.target_type().name() << '\n';
    }

Possible output:

    PFiiE
    Z4mainEUliE_
    PFvdE

### See also

target | obtains a pointer to the stored target (public member function)
type_info | contains some type’s information, the class returned by the typeid operator (class)
`typeid` | queries information of a type, returning a `std::type_info` object representing the type (operator)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/functional/function/target_type&oldid=176892"