function pointer as return type c++ code example
Example: c++ function return pointer to itself
struct func_wrap
{
using f_t = func_wrap(*)();
f_t func;
f_t operator()() const noexcept { return func; }
operator f_t() const noexcept { return func; }
};
using func_t = func_wrap(*)();
func_wrap foo() { return func_wrap{foo}; }
func_t bar() { return foo(); }
func_t buz() { return foo()(); }
struct function
{
function operator()() const noexcept
{
return function();
}
};
function foo(int) { return function(); }
function bar(int) { return function()(); }
function buz(int) { return function()()(); }