コンストラクターが 1 つしかないクラスがあるとします。
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));
...
}
}
std::move
上記の make_a_copy を置き換える C++11 または C++14 の「デュアル」関数はありますか?
編集:いくつかの説明。