0

質問は次のようになります: クラス 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 で宣言されています)。

このエラーがインスタンス化されたオブジェクトの間違った使用法に起因することはまだわかりません。これはすべての一般的なクラスで発生しますか、それともインポートされたブースト ライブラリに関するものですか?

もっと役立つ情報を教えてくれる人に感謝します!

4

1 に答える 1

1

クラスprogress_displayはコピーできないため、値によるパラメーターとして渡さないでください。[const]参照またはポインタのいずれかで渡します。

于 2012-09-05T13:10:49.997 に答える