std::function::target
From cppreference.com
< cpp | utility | functional | function
template< class T >
T* target(); |
(1) | (since C++11) |
template< class T >
const T* target() const; |
(2) | (since C++11) |
Returns a pointer to the stored callable function target.
Contents |
[edit] Parameters
(none)
[edit] Return value
A pointer to the stored function if target_type
() == typeid(T), otherwise a null pointer.
[edit] Exceptions
noexcept specification:
noexcept
[edit] Example
Run this code
#include <functional> #include <iostream> void normal_fun() { std::cout << "hello\n"; } int main() { using fptr = void(*)(); fptr fun = normal_fun; //pointer to function std::function<void()> f = fun; fun = *f.target<fptr>(); //I know that f keeps a fptr object, then I invoke target<fptr> to make a copy //of the object fun(); std::cout << std::boolalpha << (f.target<int>() == nullptr) << '\n'; //f doesn't keep an object of type int }
Output:
hello true
[edit] See also
obtains the typeid of the stored target of a std::function (public member function) |