Funkcja dual do std :: move?
Załóżmy, że mam klasę z tylko jednym konstruktorem:
class T {
public:
T(BigClass&& big) : big(std::move(big)) {}
...
SomeBigClass
};
W większości miejsc konstruktor jest wywoływany na tymczasowych, ale w jednym miejscu muszę utworzyć jawną kopię BigClass, ponieważ nie jest tymczasowa i będzie używana wielokrotnie w pętli:
void foo(const BigClass& big) {
while (...) {
T t(std::make_a_copy(big));
...
}
}
Czy jest jakaś funkcja „dual”std::move
w C ++ 11 lub C ++ 14, które zastąpiłyby make_a_copy powyżej?
Edytować: Kilka wyjaśnień.