0
converter.h находится внутри библиотеки, которая используется во многих разных проектах. В одном, содержащем mod_converter.h, я хотел бы изменить fooToString(). Но компиляция последнего проекта дает мне ошибку. Я использую Visual Studio 2008.Указатель функции переопределения
converter.h
std::string impl_fooToString(Foo f);
static std::string (*fooToString)(Foo f) = &impl_fooToString; // line 29
mod_converter.h
std::string mod_fooToString(Foo f);
fooToString = &mod_fooToString; // line 10
Compiler ошибки (перевод):
mod_converter.h(10) : error C4430: Missing type specifier: int assumed
mod_converter.h(10) : error C2373: 'fooToString': redefinition; different type modifier
converter.h(29) : see declaration of fooToString
mod_converter.h(10) : error C2440: Cannot convert from 'std::string (__cdecl *)(Foo)' to int
There is no context in which this conversion is possible.
ли линия 10 внутри тела функции? Если нет, то это недопустимый код. –
@OliCharlesworth Нет, это не так. Я буду искать функцию для правильной установки этой команды. – Lara
Это исправляет, спасибо! – Lara