【发布时间】:2011-08-23 10:16:08
【问题描述】:
我一直在编写朋友编写的一些 C++ 代码,但在使用 gcc4.6 进行编译时出现以下我从未见过的错误:
error: use of deleted function
‘GameFSM_<std::array<C, 2ul> >::hdealt::hdealt()’ is implicitly deleted because the default definition would be ill-formed:
uninitialized non-static const member ‘const h_t FlopPokerGameFSM_<std::array<C, 2ul> >::hdealt::h’
编辑:这来自使用 boost MSM 的部分代码:Boost Webpage
Edit2:源代码中的任何地方都没有使用= delete()。
一般来说,这个错误是什么意思?发生此类错误时我应该寻找什么?
【问题讨论】:
-
和你正在编译的代码?
-
我只是想知道错误是什么意思?我还需要发布代码吗?
-
gcc.gnu.org/bugzilla/show_bug.cgi?id=47417 可能有帮助,你也在使用 boost 吗?
-
@Sasquiha ,是的,我正在使用 boost MSM。
-
因为这是针对此类错误的第一个 Google 匹配项 - 这里不是这种情况,但此类错误的最常见原因是在您向类添加了一些自定义构造函数之后 - 如结果编译器停止创建默认构造函数,如果通过默认构造函数创建了类的实例,则会出现此错误。只需显式添加默认构造函数即可。
标签: c++ gcc g++ c++11 deleted-functions