From 014884efdde091ac0cc868b9f8ba6005e8caa1d7 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Fri, 25 May 2018 20:44:18 +0200 Subject: [PATCH] Revert "Removed cpp14 polyfills" to fix travis again. This reverts commit def7acc366ec440e966b49941f45d100784e217b. --- zeiterfassungcorelib/cpp14polyfills.h | 43 +++++++++++++++++++ zeiterfassungcorelib/zeiterfassungapi.cpp | 3 ++ zeiterfassungcorelib/zeiterfassungcorelib.pro | 3 +- 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 zeiterfassungcorelib/cpp14polyfills.h diff --git a/zeiterfassungcorelib/cpp14polyfills.h b/zeiterfassungcorelib/cpp14polyfills.h new file mode 100644 index 0000000..d345a00 --- /dev/null +++ b/zeiterfassungcorelib/cpp14polyfills.h @@ -0,0 +1,43 @@ +#pragma once + +#if __cplusplus < 201402L && _MSC_VER < 1800 + +// std includes +#include +#include +#include +#include +#include + +namespace std { + template struct _Unique_if { + typedef unique_ptr _Single_object; + }; + + template struct _Unique_if { + typedef unique_ptr _Unknown_bound; + }; + + template struct _Unique_if { + typedef void _Known_bound; + }; + + template + typename _Unique_if::_Single_object + make_unique(Args&&... args) { + return unique_ptr(new T(std::forward(args)...)); + } + + template + typename _Unique_if::_Unknown_bound + make_unique(size_t n) { + typedef typename remove_extent::type U; + return unique_ptr(new U[n]()); + } + + template + typename _Unique_if::_Known_bound + make_unique(Args&&...) = delete; +} + +#endif // __cplusplus < 201402L diff --git a/zeiterfassungcorelib/zeiterfassungapi.cpp b/zeiterfassungcorelib/zeiterfassungapi.cpp index 67d8ed3..78f2803 100644 --- a/zeiterfassungcorelib/zeiterfassungapi.cpp +++ b/zeiterfassungcorelib/zeiterfassungapi.cpp @@ -26,6 +26,9 @@ #include "replies/getabsencesreply.h" #include "replies/getdayinforeply.h" +//add support for pre cpp14 compilers +#include "cpp14polyfills.h" + ZeiterfassungApi::ZeiterfassungApi(const QUrl &url, QObject *parent) : QObject(parent), m_url(url), diff --git a/zeiterfassungcorelib/zeiterfassungcorelib.pro b/zeiterfassungcorelib/zeiterfassungcorelib.pro index 3a90c0b..80c924d 100644 --- a/zeiterfassungcorelib/zeiterfassungcorelib.pro +++ b/zeiterfassungcorelib/zeiterfassungcorelib.pro @@ -29,7 +29,8 @@ SOURCES += timeutils.cpp \ replies/updatetimeassignmentreply.cpp \ replies/zeiterfassungreply.cpp -HEADERS += timeutils.h \ +HEADERS += cpp14polyfills.h \ + timeutils.h \ zeiterfassungapi.h \ zeiterfassungcorelib_global.h \ zeiterfassungsettings.h \