Coding
C++ Internals

std::move Traps

Premium
Difficulty

Asked at Squarepoint Capital, Akuna Capital

Theory: C++ Internals

Read the problem, hints and solution here. The editor needs a bigger screen: open this page on a laptop to write and run your code.

xxx::xxxx xxxx xxx xxxx xxxxxxxx. xx xx x xxxx xx xxxxxx xxxxxxxxx, xxx xxxxxxx xxxx xxxx xxxxx, xxxx xxxxxxx, xx xxxxxxxx xxxxx xxxxxxx xxxxxxxx xx xxxxx xxx xxxxx xx. xxxx xxxxxxx xxxxx xxx xxxxx xx xxxxxxxxx xx xxx xxxxx xxxxxxxxx xxxxxxxxx, xxxx xx xxxxxxxxxxxx xxxxxx xxxx xxxxxxxx xxxxx xxxx xxx xxxx xxx xxxxx.

xxxxxxxxx xxxxx xxxxxxxxx xxxx xxx xxxxxxxx xxxxxx (xxxxxx xxxxxx xxx xxxxx; x xxxxx-xxxx xxxxxx xxxxx -x) xxx xxx (x xxx() xxxx xxxxxxx xxx xxxxxx xxxxxxxxx):

x. xxxxxx::xxx(xxxxxx x): x xx-xxxxx xxxx. xxxxxxx xxx xxxxxxxxx xxxx xxx xxxxxx xxxxxx xxxx xx xxxx xxxxxx xxx xxx xxx xxxxxx xxxxxxx xxxx xx xxxxxx x. xxxxxxx xxx xxxx x xxxxxxxxx xxxx xxxx xxxx xxxxxx xxx xxxxxxx xxx xxxx; xxxxxxx xx xxxx xx xxxxxx xxxxx xxxxxxx xxx xxxx (xxxx xxx xxxxxxxxx) xxxx xxxx xxx xxxx. x. xxxxxx xxxx_xxxxx(xxxx xxxx x): xxxxxx x xxxxxx xxxxx xxxxx xx (x^x), xxxxxxxxxxxx xxx xxxxxx xx xxx xxxxxx xxxxxxxxx xxxxxx (x xxxxxxx), xx xxxx xxx xxxxxx xxxxxxxx xxxx xxxxxx xxx xxxx xxxxx. xxxxxxxxxx xxxx xxxxxxx (x++xx) xxxx xxxx xxx xxx, xx xxx xxx xx. x. xxxxxxxx <xxxxxxxx x> xxxx xxxxx(xxx& xxx, x&& x): xxxx x xxxx xxx.xxx() xxxxxxxxxx xxx xxxxxx'x xxxxx xxxxxxxx: xx xxxxxx xxxxxxxx xxxx xxxxx xxx xxxxxxx xxxxxxxx xxx xxxxxx xxxxxx xxxxxxxxxx; xx xxxxxx xxxxxxxx xxxx xxxxx xxx xxxxxx xxxxxxxx.

xx xxx xxxxxx xxxxxx, xxx, xx xxx xxxxxxxxx xxxxxxxxxxxxxxx.

xxxxxxxx

[]{ xxxxxxxxx::xxxxx_xxxxxxxx(); xxxxxx x; x.xxx(xxxxxx(x)); xxxxxx xxx::xxxxx<xxxx xxxx, xxxx xxxx, xxxx xxxx>(x.xxxxxx.xxxxx, xxxxxxxxx::xxxxxx(), xxxxxxxxx::xxxxx()); }()
// (x, x, x)  (xxxxxxxxx xxxxxxxxxxx xxxxxxxx xxxx xxx xxxxxxxxx, xxxx xxxxx xxxx xxx xxxxxx)

[]{ xxxxxxxxx::xxxxx_xxxxxxxx(); xxxxxx x(x); xxxxxx x; x.xxx(x); xxxxxx xxx::xxxxx<xxxx xxxx, xxxx xxxx, xxxx xxxx, xxxx xxxx>(x.xxxxxx.xxxxx, x.xxxxx, xxxxxxxxx::xxxxxx(), xxxxxxxxx::xxxxx()); }()
// (x, x, x, x)  (xxx xxxx xxxx xxx xxxxxxxxx, xxx xxxx xxxx xxx xxxxxx, xxxxxx xxxxxxxxx)

xxxxxxxxxxx

  • xxx xxxxxxxx xxx xxxxx: xxx xxxxxx xxxxx xxxxxxx xxxxxxx xxxx xxx xxxx xxxxxx xxxx xx xxxxxxxx xxxxx xxx xxxxxxxx xxxx xxxx xxxx (xxxxxxxxxx xxxx xxxxxxx, xxxxxxxxx xxx xxxxxxx xxxxxx xxxx, xxx xxxxxxxx xxxxxxxxxx).
  • xxxxxxxxxx xxx xxxxx; xxxxxx xxxx xxx xxxxxx.
  • x xxxxx-xxxx xxxxxx xxxxx -x, xx xxxxxxx x xxxxxx'x xxxxxx xx xxxxxxx xx xxxx xxxxxxxxxx, xxx xxxx x xxxxxxx.

This problem is only available to subscribers.

Language: C++Tracer
Sample tests

Unlock the problem to run it against the tests.