Предположим, что у меня есть класс с одним конструктором:
class T {
public:
T(BigClass&& big) : big(std::move(big)) {}
...
SomeBigClass
};
В большинстве случаев конструктор вызывается во временном порядке, но в одном месте мне нужно сделать явную копию BigClass, потому что он не является временным и будет использоваться несколько раз в цикле:
void foo(const BigClass& big) {
while (...) {
T t(std::make_a_copy(big));
...
}
}
Есть ли какая-либо функция "dual" для std::move
в С++ 11 или С++ 14, которая заменит make_a_copy выше?
Изменить: некоторые пояснения.