LINUX.ORG.RU

#include <stdio.h>

typedef void (*MyCoolFunc)(void);

void f(void)
{
    printf("Hello, world!\n");
}

MyCoolFunc f2(void)
{
    return f;
}

int main()
{
    f2()();

    return 0;
}
Gvidon ★★★★ ()
Последнее исправление: Gvidon (всего исправлений: 1)
Ответ на: комментарий от Gvidon

Без typedef:

#include <iostream>

using namespace std;

int add(int x, int y) {
    return x + y;
}

int (*get_adder())(int, int) {
    return &add;
}

int main() {
    cout << get_adder()(1, 2) << endl;
}

jerk-of-all-trades ()
Ответ на: комментарий от jerk-of-all-trades

Без typedef лучше не использовать. Выглядит как говно, читаемость сразу падает

Gvidon ★★★★ ()
Ответ на: комментарий от Gvidon

Без typedef лучше не использовать. Выглядит как говно, читаемость сразу падает

оно и с тайпдефом выглядит как говно

f2()();

Stil ★★★★★ ()
F = fun() -> fun() -> io:format("hello world~n") end end,
F2 = F(),
F2().
nanoolinux ★★★★ ()
Ответ на: комментарий от anonymous

В шаблон typedef не засунешь ))

ВО-первых засунешь. Во-вторых ты скорее всего хочешь alias из C++11.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.