Нет. Ошибка такая: A parameter of type "void (*)(void *, int, ...)" cannot be initialized with an expression of type "extern "C" void (void *, int, ...)".
Это точно ошибка компилятора?
Точно его ошибка. Правда я немного лукавил, когда писал extern "C". На самом деле у меня в коде extern "OS", что означает прототипирование для вызова программы, лежащей в системе. Видимо, это здесь играет первостепенную роль...
да, ошибка странная в стандартном С++ linkage это свойство символа (name), а не его типа
возможно, тогда сработает код вида typedef extern "OS" void(*api)(void*, int, ...);
decltype не завезли, конечно же? можно было бы написать typedef decltype(api1) api;
Тут ошибка: The text ""OS"" is unexpected.
Проблема в указателе, всё проще же
https://ideone.com/zLtUtk
https://t.me/supapro/999688
в ошибке написано про несовпадение типов: A parameter of type "void (*)(void *, int, ...)" cannot be initialized with an expression of type "extern "C" void (void *, int, ...)".
А ведь прокатило! )
Обсуждают сегодня