Я пытаюсь объявить стандартную программу обратного вызова в C++ следующим образом:
void register_rename (int (*function) (const char *current, const char *new));
/*------------------------------------------------------------*/
/* WHEN: The callback is called once each time a file is received and
* accepted. (Renames the temporary file to its permanent name)
* WHAT: Renames a file from the given current name to the specified new name.
*/
Однако я получаю следующую ошибку:
line 204: error #70:
incomplete type is not allowed
void register_rename (int (*function) (const char *current, const char *new));
Я не уверен, как исправить это. У меня есть другие подобные стандартные программы обратного вызова, объявленные в том же заголовочном файле, и я не получаю эту ошибку.
Помогите!:)
Вы не можете использовать new, потому что это ключевое слово. Попробуйте выбрать действительный идентификатор для второго аргумента.
Вы не можете назвать переменную (или любой идентификатор) зарезервированным словом;
зарезервированные слова - это ключевые слова
asm do if return try
auto double inline short typedef
bool dynamic_cast int signed typeid
break else long sizeof typename
case enum mutable static union
catch explicit namespace static_assert unsigned
char export **new** static_cast using
class extern operator struct virtual
const false private switch void
const_cast float protected template volatile
continue for public this wchar_t
default friend register throw while
delete goto reinterpret_cast true
и альтернативные имена некоторых операторов
and and_eq bitand bitor compl not
not_eq or or_eq xor xor_eq