должно быть typedef enum bool (*compare_fun)(int, int);
:)
Также убедитесь, что ваша реализация не имеет предопределенных bool
true
и false
Обратите внимание, что в C ++ при определении перечисления, класса или структуры, скажем, с именем A, вы можете объявить переменную типа A, например
A var;
или
class A var; //or struct A var; or enum A var;
в C допустим только второй синтаксис.
Вот почему они обычно делают typedef. как это
typedef enum {true, false} bool;
в этом случае вы можете использовать свой оригинальный синтаксис:
typedef bool (*p) (int, int);
НТН.