ELEC-C7222
Libraries for ELEC C7222 Course Work
Loading...
Searching...
No Matches
ELEC-C7222 Utility API

This document summarizes the libs/elec_c7222/utils utilities layer. These helpers provide small, reusable building blocks used across the course codebase.

Purpose

The utilities module exists to:

  1. Provide safe base classes for copy/move semantics.
  2. Provide lightweight C++ utility primitives used by multiple library modules.

Utility Classes

<tt>NonCopyable</tt>, <tt>NonMovable</tt>, <tt>NonCopyableNonMovable</tt>, <tt>MovableOnly</tt>, <tt>CopyableOnly</tt>

Location: libs/elec_c7222/utils/include/non_copyable.hpp

Purpose:

  1. NonCopyable: disables copy operations while allowing move.
  2. NonMovable: disables move operations while allowing copy.
  3. NonCopyableNonMovable: disables both copy and move.
  4. MovableOnly: allows move but forbids copy (convenience base).
  5. CopyableOnly: allows copy but forbids move (convenience base).

These base classes are intended for hardware handles, singleton-like services, and objects that must not be duplicated or relocated.