# Juliet\include\Core\Common\NonCopyable

## Source Files
- Header: `Juliet\include\Core\Common\NonCopyable.h`

## AI Description
The `NonCopyable` class in the Juliet library is designed to prevent instances of a class from being copied. This is achieved by deleting the copy constructor and assignment operator, which are public members of the class. By doing so, we ensure that any attempt to create a copy of an instance of `NonCopyable` will result in a compilation error, thereby enforcing immutability or preventing unintended modifications to the object. This design pattern is particularly useful for classes that represent immutable data structures or objects where copying would lead to unexpected behavior.

## Symbols

### Namespace `Juliet`

#### Classes, Structs & Unions
- `class NonCopyable`

#### Functions & Methods
- `public: NonCopyable::NonCopyable()`
- `virtual NonCopyable::~NonCopyable()`
- `NonCopyable::NonCopyable(const NonCopyable&)`

