From a0ce6de9136355410365f24fbdcab734700e88af Mon Sep 17 00:00:00 2001
From: Lioncash <mathew1800@gmail.com>
Date: Thu, 16 Aug 2018 10:15:00 -0400
Subject: [PATCH] core: Delete System copy/move constructors and assignment
 operators

Prevents potentially making copies or doing silly things by accident
with the System instance, particularly given our current core is
designed (unfortunately) around one instantiable instance.

This will prevent the accidental case of:

auto instance = System::Instance();

being compiled without warning when it's supposed to be:

auto& instance = System::Instance();
---
 src/core/core.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/core/core.h b/src/core/core.h
index d98b15a712..790e23caeb 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -40,6 +40,12 @@ namespace Core {
 
 class System {
 public:
+    System(const System&) = delete;
+    System& operator=(const System&) = delete;
+
+    System(System&&) = delete;
+    System& operator=(System&&) = delete;
+
     ~System();
 
     /**