Back to trackQuant Developer
Next
Track progress147 items
C++ Internals

Rule of Five Audit

Premium
Difficulty

Asked at DRW, Da Vinci Derivatives

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.

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

x xxxx xxxxxxx xxxxx xx xx-xxxxx xxxxxxxx xxxx xx x xxxx xxxxxxxxxx, x xxxxxx xx xx xxxxxxxx xxxxxxx xx x xxxxx xxxx xxxx. xxx xxxx xxxxxxx xxxxxx xxxxxxxxx xxxx xxxx xxx xxxxxxxx xxxxxxxxx xxxxx.

xxx xxxxx:

  • xxx xxxxxxx xxxxxxxxxxx xxxxxxxx x xxxxxx xxxx xxxx_x().
  • xxx xxxxxxxxxx xxxxxxxx xx xxxx xxxxx_x(xx), xxxxxxx xxxx, xxx xxxx xx xxx xxxxxx xxxxx xxxx x xxxxxx.
  • xxxx xxxxxxxxxxx xxx xxxx xxxxxxxxxx xxxx xxx xxxxxxx (xxxxxx xxxx): xxx xxxxxx xx xxx xxxxxx xxxxx xxxx x xxxxxx xxxxx.
  • xxx xxxx xxxxxxxxxxx xxxxxxxxx xxxxxxxxx xxx xxxxxx xxx xxxxxx xxxxx (xxxxx() == xxxxx, xx() == -x), xxxxxxx xxxxxxx.
  • xxxx xxxxxxxxxx xxxxx xxxxxx xxx xxx xxxxxx (xx xxx), xxxx xxxxx xxx xxxxxx'x. x = xxx::xxxx(x) xxxx xxxxx x xxxxxxxxx.
  • xxxx xxxx xxxxxxxxxx xxxx xx xxxxxxxx. xxxx xx xxx x xxxxx xxxxx: xxx::xxxxxx xxxx xxxxx xxxxxxxx xxxxxx xxxxxxxxxxxx xxxx xxx xxxx xxxxxxxxxxx xx xxxxxxxx (xxxxxxxxx xx xxxxxx xxx xxx xxxxxx xxxxxxxxx xxxxxxxxx), xxx x xxxxxx xxxx xxxxxx xxx::xx_xxxxxxx_xxxx_xxxxxxxxxxxxx_x<xxxxxxxxxx>.
  • xxxx xx() xxx xxxxx() xx xxxxx; xx xxxxx xxxxxx xx xxxxxxxxxxx xx -x.

xxx xxxxxxxxxxxxxxx xxxxxx xxxxx(), xxxxxx() xxx xxx_xxxxxx() (x xxxxx xx xxxxxxxxx xxx xxxxxxxxx xxxx, xxxxxxxxx -x). xxxxxxx xxxx xxxxx xxxxxxxx x xxx xxxxx, xxx xxxxx xxxx xx xxxxxxx xx xxxxxxx xxx xxxxx xx xxx xxxx xxx xxxxx xxxx xxx xx xxxxx.

xxxxxxxx

[]{ xxxxx_xxxxxxxx(); { xxxxxxxxxx x; xxxxxxxxxx x; } xxxxxx xxx::xxxxx<xxxx xxxx, xxxx xxxx, xxxx xxxx>(xxxxx(), xxxxxx(), xxx_xxxxxx()); }()
// (x, x, x)  (xxx xxxxxxx xxxxxx, xxx xxxxxx, xx xxxxxx xxxxxx)

[]{ xxxxx_xxxxxxxx(); xxx::xxxxxx<xxxx xxxx> xxx; { xxxxxxxxxx x; xxx xxxxxxxx = x.xx(); xxxxxxxxxx x = xxx::xxxx(x); xxx.xxxx_xxxx(x.xx() == xxxxxxxx ? x : x); xxx.xxxx_xxxx(x.xxxxx() ? x : x); xxx.xxxx_xxxx(xxxxxx()); } xxx.xxxx_xxxx(xxxxx()); xxx.xxxx_xxxx(xxxxxx()); xxx.xxxx_xxxx(xxx_xxxxxx()); xxxxxx xxx; }()
// [x, x, x, x, x, x]  (xxx xxxx xxxxxxxxx xxx xx, xxxxxxx xxx xxxxxx, xxxxxx xxxxxxx)

xxxxxxxxxxx

  • xx xxx xxxxxx xxx xxxxxxxxxxx xxxxxxxxxxxxxxx.
  • xxxxxxx xxx xxxxxxx xxxx xxxxxxx xxxx_x() / xxxxx_x().
  • xxxxxx xxxxx xxxxx xxxx xxxxxxxxxx, xxxx-xxxx, xxx x xxx::xxxxxx<xxxxxxxxxx> xxxxxxx xxxxxxxx xxxxxxxxxxxxx (xxx xxxxxxxx), xxxx xxxxx xxx xxxxxxxx xxx xxx xxxx xxxxxx.

This problem is only available to subscribers.

Language: C++23FileHandle

Unlock the problem to run it against the tests.