otóz mam coś takiego: (pseudokod)
king king;
// Jakas funkcja:
DistanceConstraint c(*king.getNodes(), *king.getNodes()->next, 100, 300);
king.add(std::move(c));
// end
// King::add:
template<typename T>
void add(T c)
{
void* mem = allocator.alloc(sizeof(T));
Constraint* New = new (mem) T(c);
// dalsze czynnosci
}
I teraz pytanie jak to wygląda, ponieważ na początku stworzyłem obiekt 'c' w funkcji na stosie jak nie miewam i chciałbym go przenieść na heap żeby trzymać go dłużej. Czy std::move tutaj zadziała? Ile razy jest DistanceConstraint kopiowany przez ten kod? Jak to wygląda bez std::move? Ile razy się to kopiuje?