移動コンストラクタを使用するC++ 11のコードをg ++でコンパイルできないようです。私はこのエラーを取得しておいてください。どのようにして、g ++がムーブコンストラクタでC++ 11コードをコンパイルするのですか?
[email protected]:~/Projects/arraylib$ g++ ./t2.cpp
./t2.cpp:10:27: error: expected ‘,’ or ‘...’ before ‘&&’ token
./t2.cpp:10:38: error: invalid constructor; you probably meant ‘Blarg (const Blarg&)’
私が書いているプログラムは、このかなり異なっているが、私はそれは間違いなく動作するはずのように思える部分にそれをトリミングし、それでもエラーをトリガ:
#include <iostream>
using namespace std;
class Blarg {
public:
Blarg() {};
Blarg (const Blarg& original) {}; /* Copy constructor */
Blarg (Blarg&& original) {}; /* Move constructor */
};
int main(int argc, char *argv[])
{
Blarg b;
return 0;
}
誰でも私が間違っていることを教えてもらえますか?むしろ、それを修正する方法は?
これは私のgccのバージョンです:
gcc (Ubuntu/Linaro 4.6.2-14ubuntu2) 4.6.2
移動コンストラクタのconst参照を渡すことはかなり役に立たないことに注意してください。現実的には 'Blarg(Blarg &&オリジナル)'でなければなりません。 – ildjarn
ええ、ありがとう。私はそれを実際のコードで修正しました。私もそれを上に修正します。 – Collin