Tôi dường như không nhận được g + + để biên dịch mã C++ 11 sử dụng một hàm tạo di chuyển. Tôi cứ bị lỗi này:Làm cách nào để lấy g ++ để biên dịch mã C++ 11 với một hàm tạo di chuyển?
[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&)’
Chương trình Tôi viết thư này là khá khác nhau từ này, nhưng tôi cắt nó xuống để phần mà có vẻ như nó chắc chắn sẽ làm việc, nhưng vẫn gây nên các lỗi:
#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;
}
Có ai cho tôi biết tôi đang làm gì sai không? Thay vào đó, làm thế nào để sửa chữa nó?
Đây là phiên bản gcc của tôi:
gcc (Ubuntu/Linaro 4.6.2-14ubuntu2) 4.6.2
Lưu ý rằng việc chuyển một tham chiếu const cho một hàm tạo di chuyển là khá vô ích; thực tế nên là 'Blarg (Blarg && original)'. – ildjarn
Vâng, cảm ơn. Tôi đã sửa nó trong mã thực sự của mình. Tôi cũng sẽ sửa nó ở trên. – Collin