Move-Only Buffer Handle

Medium C++ Resource Management Asked at Microsoft
Solve this problem

Wrap a DMA buffer handle in a move-only type so it can be transferred between owners but never accidentally double-released.

Constraints

  • Copy constructor and copy assignment deleted.
  • Move must leave the source in a released state.
  • Destructor releases only when the handle is still valid.
  • Self-move assignment must be safe.
  • Use the provided acquire_buffer/release_buffer hooks.
  • No exceptions.
Starter codeC++
1#include <cstdint>2#include <utility>3 4extern int acquire_buffer();5extern void release_buffer(int handle);6 7class BufferHandle {8    // TODO9};