From 4ed410dc09806afb993ef2cc511bfe70f4beb29c Mon Sep 17 00:00:00 2001
From: James Turner <zakalawe@mac.com>
Date: Mon, 27 May 2019 11:38:37 +0100
Subject: [PATCH] Adjust code for some older GCC versions

Implicit conversion from raw-pointer to std::unique_ptr<T> was failing,
use a stub replacement for std::make_unqiue to wrap this up cleanly.
---
 src/Network/Swift/dbusdispatcher.cpp | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/Network/Swift/dbusdispatcher.cpp b/src/Network/Swift/dbusdispatcher.cpp
index b28df5497..8a00b9312 100644
--- a/src/Network/Swift/dbusdispatcher.cpp
+++ b/src/Network/Swift/dbusdispatcher.cpp
@@ -1,5 +1,5 @@
-// dbus-dispatcher.cpp 
-// 
+// dbus-dispatcher.cpp
+//
 // Copyright (C) 2019 - swift Project Community / Contributors (http://swift-project.org/)
 // Adapted to Flightgear by Lars Toenning <dev@ltoenning.de>
 //
@@ -21,6 +21,15 @@
 #include "dbusconnection.h"
 #include <algorithm>
 
+namespace { // anonymosu namespace
+    
+template <typename T, typename... Args>
+std::unique_ptr<T> our_make_unique(Args&&... args) {
+    return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
+}
+
+} // end of anonymous namespace
+
 namespace FGSwiftBus
 {
 
@@ -198,7 +207,7 @@ namespace FGSwiftBus
         if (dbus_watch_get_enabled(watch) == FALSE) { return true; }
 
         int fd = dbus_watch_get_unix_fd(watch);
-        m_watchers.emplace(fd, new WatchHandler(m_eventBase.get(), watch));
+        m_watchers.emplace(fd, our_make_unique<WatchHandler>(m_eventBase.get(), watch));
         return true;
     }