错误:使用已删除的函数 boost::filesystem3::directory_iterator

Posted

技术标签:

【中文标题】错误:使用已删除的函数 boost::filesystem3::directory_iterator【英文标题】:error: use of deleted function boost::filesystem3::directory_iterator 【发布时间】:2014-03-27 01:05:02 【问题描述】:

我在尝试编译 C++ 和 qt 项目时遇到了这个奇怪的错误:

error: use of deleted function ‘boost::filesystem3::directory_iterator::directory_iterator(const boost::filesystem3::directory_iterator&)’

代码中的任何地方都没有使用delete(),这个错误是什么意思?发生此类错误时我应该寻找什么?

【问题讨论】:

表示directory_iterator()函数已经被删除,你还在使用。 感谢您的回答,这可能是正确的,但我没有使用任何函数 directory_iterator(),在错误消息之后我有这个: ::new(static_cast(__p )) _T1(std::forward<_args>(__args)...); 我面临同样的问题,但使用了不同的库。如何解决这个问题? /usr/include/c++/4.8/bits/stl_construct.h:75:7: 错误:使用已删除的函数'boost::filesystem3::directory_iterator::directory_iterator(const boost::filesystem3::directory_iterator&)' :: new(static_cast(__p)) _T1(std::forward<_args>(__args)...); ^ 我重新安装了所有东西,我不确定问题是缺少库还是什么,因为问题消失了,很抱歉没有给你一个准确的答案,但是那种错误很奇怪... 【参考方案1】:

如果您将 std=c++11 与 1.48 之类的旧 libboost 一起使用,则会发生这种情况。

解决办法是安装新版本。

另见this answer。

【讨论】:

以上是关于错误:使用已删除的函数 boost::filesystem3::directory_iterator的主要内容,如果未能解决你的问题,请参考以下文章

学习c++:错误:使用已删除函数

在 qt C++ 信号和槽中使用已删除函数错误

C++ 错误(C2280)试图访问已删除的函数 [关闭]

std::atomic_int 出现“使用已删除函数”错误

错误:使用已删除的函数 boost::filesystem3::directory_iterator

调用递归函数时出现编译器错误 - “试图引用已删除的函数”