Parece que no puedo obtener g ++ para compilar el código de C++ 11 que usa un constructor de movimiento. Sigo recibiendo este error:¿Cómo consigo g ++ para compilar el código de C++ 11 con un constructor de movimiento?
[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&)’
El programa que estoy escribiendo es muy diferente de esto, pero recortado hacia abajo a la parte que parece que definitivamente debería funcionar, y aún así desencadena el error:
#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;
}
¿Alguien puede decirme qué estoy haciendo mal? Por el contrario, ¿cómo solucionarlo?
Ésta es mi versión de gcc:
gcc (Ubuntu/Linaro 4.6.2-14ubuntu2) 4.6.2
Tenga en cuenta que pasar una referencia constante para un constructor de movimiento es bastante inútil; de manera realista, debería ser 'Blarg (Blarg && original)'. – ildjarn
Sí, gracias. Lo he arreglado en mi código actual. Lo arreglaré arriba, también. – Collin