Как превратить void() в void (**)()?

Для преобразования типа void() в тип void (**)() в языке C++, мы можем использовать указатель на функцию.

В языке C++ есть несколько способов определить указатель на функцию. Один из вариантов - это использование typedef, который позволяет нам создать псевдоним для типа функции.

Давайте определим typedef для типа void (*funcPtr)(), который будет представлять указатель на функцию без аргументов и без возвращаемого значения:

typedef void (*funcPtr)();

Теперь у нас есть псевдоним funcPtr, который можно использовать для объявления указателя на функцию. Например:

void myFunction() {
    // код функции
}

int main() {
    // объявляем указатель на функцию с помощью typedef
    funcPtr ptr = myFunction;

    // вызываем функцию через указатель
    ptr();

    return 0;
}

Теперь, чтобы преобразовать тип void() в тип void (**)(), мы можем использовать указатель на указатель на функцию. Для этого объявим новый псевдоним:

typedef void (**funcPtrPtr)();

Теперь у нас есть псевдоним funcPtrPtr, который можно использовать для объявления указателя на указатель на функцию. Например:

void myFunction() {
    // код функции
}

int main() {
    // объявляем указатель на указатель на функцию с помощью typedef
    funcPtrPtr ptrPtr = &myFunction;

    // вызываем функцию через указатель на указатель
    (*ptrPtr)();

    return 0;
}

В данном примере мы объявляем указатель на указатель на функцию с помощью typedef и присваиваем ему адрес функции myFunction с помощью оператора &. Затем мы вызываем функцию через указатель на указатель, разыменовывая его с помощью оператора *, и используя круглые скобки для вызова функции.

Надеюсь, эта информация поможет вам преобразовать тип void() в тип void (**)().