问题是这样的: 我尝试使用class progress_display(boost / progress.hpp)来计算和显示我的程序的进度。 正确使用课程:
1.Instantiation: progress_display pd(count);
2.for( ; ; ){
pd++;
}
3.With the increment of 'pd', the progress is display in console in real-time.
我的麻烦: 执行大部分计算的核心功能是迭代函数,我尝试将对象'pd'传递给该函数,以便在子迭代函数的执行完成时,对象'pd'将执行“ ++“操作。
#include<Windows.h>
#include<boost/progress.hpp>
using namespace std;
using namespace boost;
void functest(progress_display pdInput){
pdInput++;
}
int _tmain(int argc, _TCHAR* argv[])
{
vector<int> L;
progress_display pd(100);
functest(pd);
return 0;
}
但是,出现错误:错误C2248:“boost :: noncopyable _ :: noncopyable :: noncopuable”:无法访问私有成员(在类“boost :: noncopyable _ :: noncopyalbe”中声明)。
我仍然不知道这个错误是来自实例化对象的错误用法,它会出现在所有常见的类中,还是所有关于导入的boost库的?
感谢任何能给我更多有用信息的人!
答案 0 :(得分:1)
无法复制类progress_display
,因此请勿按值将其作为参数传递。通过[const]引用或通过指针传递。