解析" cannot define member function ... within .."
Resolving a " cannot define member function ... within .."
我已经为这个问题挣扎了一段时间,我想知道一种系统的方法来找出我为什么会出现这个错误。显然,我的解决方案中有多个组件。当我试图构建我的一个组件时,我遇到了这个错误。
error: cannot define member function 'ImageFramework::ACE_Main::run_i' within 'ImageFramework'
In file included from C:mingw64requiredACEACE_wrappers/ace/config-all.h:89:0,
from C:windows-libscorbaACE_wrappersTAOorbsvcs/orbsvcs/CosNamingC.h:37,
from C:UsersUserAdminTreeShellMainProcessSourceCodeExternalCommunicationCORBA/TCorbaClient.h:12,
from C:UsersUserAdminTreeShellMainProcessSourceCodeExternalCommunication/SystemCommunicator.h:23,
from C:UsersUserAdminTreeShellMainProcessSourceCodeApplicationManagerApplMngExternalComm.h:18,
from C:UsersUserAdminTreeShellMainProcessSourceCodeApplicationManagerApplMngMessageHandler.h:15,
from C:UsersUserAdminTreeShellMainProcessSourceCodeApplicationManagerApplMngMessageHandler.cpp:15:
C:mingw64requiredACEACE_wrappers/ace/OS_main.h:218:51: error: cannot define member function 'ImageFramework::ACE_Main::run_i' within 'ImageFramework'
inline int ACE_Main::run_i (int argc, char *argv[])
有一点背景,该组件使用了一个名为ace的外部库,错误将我放在了一个ace源文件中(我很犹豫是否要触摸它,因为它不是我项目的一部分)。有点像这个
# define main
ace_main_i (int, char *[]);
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Export int ace_os_main_i (ACE_Main_Base&, int, char *[]);
class ACE_Main : public ACE_Main_Base {int run_i (int, char *[]);};
inline int ACE_Main::run_i (int argc, char *argv[])
{
return ace_main_i (argc, argv);
}
ACE_END_VERSIONED_NAMESPACE_DECL
int
ACE_MAIN (int argc, char *argv[]) /* user's entry point, e.g., wmain */
{
ACE_Main m;
return m.run (argc, argv); /*ace_os_main_i (m, argc, argv); what the user calls "main" */
}
int
ace_main_i
# endif /* ACE_WIN32 && ACE_USES_WCHAR */
# else /* ACE_HAS_WINCE */
无论如何,这里是我为上面提到的错误消息错误所做的尝试,所以
error: cannot define member function 'ImageFramework::ACE_Main::run_i' within 'ImageFramework'
我已经查看了ImagFramework
类源.h
和.cpp
,它们有多个包含文件。(此外,这个类充当了许多其他类的基类)来查看是否包含ace库头,但我找不到任何头。我希望就找出可能导致这一问题的原因的系统方法提出建议。我甚至可能误解了这个信息。我对这条消息的理解是,imageframework
类中的方法或其基类中的方法可能会触发代码的上述部分。如果我错了,请纠正我?任何关于这个问题的建议和想法都将不胜感激。我可能会得到这个还有其他原因吗?
看起来ImageFramework
类有一个名为main
的成员。因此,宏#define main ace_main_i ...
展开并给出错误。
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- 库函数需要一个 std::function<void(void)>,如何传入类函数?
- Confusion: decltype vs std::function
- 为什么 std::function 可以作为 std::not2 的参数?
- 'max'匹配'std::function<const int &(const int &, const int &)>'无过载
- C++错误:"error: int aaa::bbb is protected within this context"
- 传递给std::function template的template参数究竟代表什么
- 将带有unique_ptr的可变 lambda 传递给 const&std::function
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- "no matching function for call to 'Vector::Vector'"错误
- 如何在向量中删除 std::function<void()>?
- 不断"Attempting to reference a deleted function"
- 将函数包装器转换为 std::function
- 类型擦除的std::function与虚拟函数调用的开销
- "Warning: Comma within array index expression"但逗号分隔函数参数
- C++ std::function 对于类 exept 的所有实例都是空的(只有 Visual2019 编译器问题)
- 如果模板没有可变参数,则 Lambda 被推导出为 std::function
- c++ std::bind within function
- 解析" cannot define member function ... within .."