Non riesco a ottenere g ++ per compilare codice C++ 11 che utilizza un costruttore di mosse. Continuo a ricevere questo errore:Come posso ottenere g ++ per compilare codice C++ 11 con un costruttore di mosse?
[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&)’
Il programma che sto scrivendo è molto diverso da questo, ma ho tagliato verso il basso per la parte che sembra come esso dovrebbe funzionare sicuramente, ma ancora genera l'errore:
#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;
}
Qualcuno può dirmi cosa sto facendo male? Piuttosto, come risolverlo?
Questa è la mia versione di gcc:
gcc (Ubuntu/Linaro 4.6.2-14ubuntu2) 4.6.2
Si noti che passare un riferimento const per un costruttore di movimento è abbastanza inutile; realisticamente dovrebbe essere 'Blarg (Blarg && original)'. – ildjarn
Sì, grazie. L'ho risolto nel mio codice attuale. Lo sistemerò anche sopra. – Collin