私は-std=c++11
のCMakeメイクファイルでC++を使用しています。C++ 11 cmake O3オプション<std :: thread>の初期化用にコンストラクタが一致しません。
私のプログラムはいくつかのスレッドメソッドを使用しています。私は問題なくプログラムをビルドして実行できます。
しかし、私はcmakeのオプションに-03
最適化フラグを追加するとき、私は、このエラーメッセージがあります。
"の初期設定に該当するコンストラクタ 'のstd ::スレッド'"
まずI Dを「なぜ-O3
オプションにしか表示されないのかわかりません。
-O3
でコンパイルしたいと思っていますが、私はmythread = std::thread(&X::run<A, B>, this, a, b);
について話していますが、私のプログラムではうまくいかず、使い方が分かりません。の場合には、私は正確に&X::run<A, B>
が何であるかを理解していないstd::thread(&X::run<A, B>, this, a, b);
の場合std::thread t1(get4points,&myImage, ...
:私は非常に簡単に呼び出す
static void getPoints(Mat *in, vector<Point> *posPoint, float *h,int rad, int dex,int decy, Mat *debug = NULL);
今日:ここ
私の機能を私はスレッドに撮りたいです私は同じクラスの関数で1つのクラスの関数を呼び出します。
例の擬似コード:
class myclass
{
template<int A, int B> void run(int a, int b)
{
// ...
}
void myMainfunction(int a, int b)
{
?????? -> std::thread(&this::run<int, int>, this, 1, 1);
}
};