Require C++14
Summary: KWin already used C++14 constructs in a conditional way. This doesn't make much sense today, it's better to just require C++14. For KWin only gcc and clang are currently compilers of relevance. Gcc supports C++14 since version 5 and defaults to C++14 since 6.1 [1]. Clang supports C++14 since version 3.4 [2]. An overview of compiler support in various distributions: * Debian stable (stretch): gcc 6.3, clang 3.8 * Debian oldstable (jessie): 4.9, clang 3.5 * Ubuntu 17.04: gcc 6.1, clang 3.8 * Ubuntu 16.04: gcc 5.3, clang 3.8 * openSUSE Tumbleweed: gcc 7.1, clang 4.0 * openSUSE Leap 42.3: gcc ?, clang ? [3] * FreeBSD: clang >= 34 in ports * Slackware 14.2: gcc 5.3 This overview shows that every distro out there has at least one supported compiler which can still compile KWin with this change. [1] https://gcc.gnu.org/projects/cxx-status.html#cxx14 [2] https://clang.llvm.org/cxx_status [3] Sorry I fail to understand openSUSE's package repository. It seems that there is gcc 7 available, but gcc package is 4.8 Test Plan: Compiles on my neon system Reviewers: #plasma Subscribers: plasma-devel, kwin, #kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D6634
This commit is contained in:
parent
8e2805ce9d
commit
ea5d611de1
2 changed files with 2 additions and 12 deletions
|
@ -48,7 +48,7 @@ include(ECMOptionalAddSubdirectory)
|
|||
|
||||
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0 -DQT_USE_QSTRINGBUILDER)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(Qt5Multimedia QUIET)
|
||||
|
|
|
@ -69,17 +69,7 @@ typedef struct xcb_glx_buffer_swap_complete_event_t {
|
|||
#endif
|
||||
|
||||
#include <tuple>
|
||||
|
||||
#if __cplusplus <= 201103L
|
||||
namespace std {
|
||||
// C++-14
|
||||
template<class T, class... Args>
|
||||
unique_ptr<T> make_unique(Args&&... args) {
|
||||
return unique_ptr<T>(new T(std::forward<Args>(args)...));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace KWin
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue