Originariamente inviato da shodan
Controlla per bene questa funzione:
codice:
Vettore Molla::unitario(const list V) const
{
	Vettore r(
            unitario(V)  // in particolare questa chiamata.
        ); 

	return std::move(r);
}
Che scemo! chiamata ricorsiva infinita? Volevo utilizzare sempre una sola funzione di base, utilizzata poi dalle altre, ma sono stato frettoloso e non ho riflettuto... =S.

Modificato come segue (poi metterò anche in pratica il tuo consiglio di passare per valore, risparmiando così una linea di codice).
codice:
Vettore Molla::unitario(const Vettore& V) const
{
	return (1 / V.norma()) * V;
}

Vettore Molla::unitario(const vector& V) const
{
	Vettore r(V);

	return std::move(unitario(r));
}

Vettore Molla::unitario(const list& V) const
{
	Vettore r(V);

	return std::move(unitario(r));
}
Grazie mille, ora funziona.