File: memory.hpp

package info (click to toggle)
qnodeeditor 2.1.7-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 2,144 kB
  • sloc: cpp: 8,823; makefile: 3
file content (25 lines) | stat: -rw-r--r-- 822 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once
#include <memory>
#include <utility>
namespace QtNodes
{
    namespace detail
    {
#if (!defined(_MSC_VER) && (__cplusplus < 201300)) || (defined(_MSC_VER) && (_MSC_VER < 1800))
        //_MSC_VER == 1800 is Visual Studio 2013, which is already somewhat C++14
        // compilant,
        // and it has make_unique in it's standard library implementation
        template<typename T, typename... Args>
        std::unique_ptr<T> make_unique(Args &&... args)
        {
            return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
        }
#else
        template<typename T, typename... Args>
        std::unique_ptr<T> make_unique(Args &&... args)
        {
            return std::make_unique<T>(std::forward<Args>(args)...);
        }
#endif
    } // namespace detail
} // namespace QtNodes