From a7a4798155c42c6b228df8df95dec468770e4676 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Mon, 2 Nov 2020 10:44:50 +0200
Subject: [PATCH] Change SDK to not return shared_ptr directly

---
 SDK/C++/private/system.cpp    | 4 ++--
 SDK/C++/public/CMakeLists.txt | 2 +-
 SDK/C++/public/voltu.cpp      | 6 +++---
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/SDK/C++/private/system.cpp b/SDK/C++/private/system.cpp
index 27f598bb2..3f25035da 100644
--- a/SDK/C++/private/system.cpp
+++ b/SDK/C++/private/system.cpp
@@ -17,11 +17,11 @@ static bool g_isinit = false;
 #define EXTERN_DLL_EXPORT extern "C"
 #endif
 
-EXTERN_DLL_EXPORT std::shared_ptr<voltu::System> voltu_initialise()
+EXTERN_DLL_EXPORT voltu::System* voltu_initialise()
 {
 	if (!g_isinit)
 	{
-		return std::make_shared<SystemImpl>();
+		return new SystemImpl();
 	}
 	else
 	{
diff --git a/SDK/C++/public/CMakeLists.txt b/SDK/C++/public/CMakeLists.txt
index 47ea694e2..ae8c7da08 100644
--- a/SDK/C++/public/CMakeLists.txt
+++ b/SDK/C++/public/CMakeLists.txt
@@ -17,7 +17,7 @@ endif()
 if(WIN32)
 	add_definitions(-DWIN32)
 	set(CMAKE_GENERATOR_TOOLSET "host=x64")
-	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2 /MP4 /std:c++11 /wd4996")
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2 /MP4 /std:c++14 /wd4996")
 	set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DFTL_DEBUG /Wall")
 	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /O2")
 	set(OS_LIBS "")
diff --git a/SDK/C++/public/voltu.cpp b/SDK/C++/public/voltu.cpp
index 51d32a532..25b0f4019 100644
--- a/SDK/C++/public/voltu.cpp
+++ b/SDK/C++/public/voltu.cpp
@@ -60,13 +60,13 @@ std::shared_ptr<voltu::System> voltu::instance()
 
 	if (handle)
 	{
-		std::shared_ptr<voltu::System> (*init)();
-		init = (std::shared_ptr<voltu::System> (*)())getFunction(handle, "voltu_initialise");
+		voltu::System* (*init)();
+		init = (voltu::System* (*)())getFunction(handle, "voltu_initialise");
 
 		if (init)
 		{
 			g_init = true;
-			auto instance = init();
+			std::shared_ptr<voltu::System> instance(init());
 
 			if (!instance)
 			{
-- 
GitLab