From 0e9943dd671877adbe13c9316bded21ac762e4dd Mon Sep 17 00:00:00 2001 From: Tim Blechmann Date: Tue, 10 Dec 2024 08:59:43 +0800 Subject: [PATCH] libs: clang-19 compile fixes * clang-19 seems to be stricter at instantiating code, causing compile errors if functions might not compile * use cpp feature detection macro instead of detecting compilers Change-Id: I47d8b5e325e1528e672fd713d7622305ced1149d Reviewed-by: Eike Ziller --- src/libs/sqlite/sqlitebasestatement.h | 4 ---- src/libs/sqlite/sqliteids.h | 2 +- src/libs/utils/algorithm.h | 4 ++-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/libs/sqlite/sqlitebasestatement.h b/src/libs/sqlite/sqlitebasestatement.h index a41be5f4822..4da0cefa7fb 100644 --- a/src/libs/sqlite/sqlitebasestatement.h +++ b/src/libs/sqlite/sqlitebasestatement.h @@ -411,10 +411,6 @@ public: BaseSqliteResultRange(BaseSqliteResultRange &) = delete; BaseSqliteResultRange &operator=(BaseSqliteResultRange &) = delete; - - BaseSqliteResultRange(BaseSqliteResultRange &&other) - : m_statement{std::move(other.resetter)} - {} BaseSqliteResultRange &operator=(BaseSqliteResultRange &&) = delete; iterator begin() & { return iterator{m_statement}; } diff --git a/src/libs/sqlite/sqliteids.h b/src/libs/sqlite/sqliteids.h index 4816cd67d7c..7e4f5de4baa 100644 --- a/src/libs/sqlite/sqliteids.h +++ b/src/libs/sqlite/sqliteids.h @@ -147,7 +147,7 @@ public: friend void convertToString(String &string, CompoundBasicId id) { convertToString(string, id.id); - convertToString(string, id.contextId); + convertToString(string, id.contextId()); } friend bool compareId(CompoundBasicId first, CompoundBasicId second) diff --git a/src/libs/utils/algorithm.h b/src/libs/utils/algorithm.h index f173f9844a5..6814f935237 100644 --- a/src/libs/utils/algorithm.h +++ b/src/libs/utils/algorithm.h @@ -258,7 +258,7 @@ template class C, // result container type typename Result = std::decay_t>, typename ResultContainer = C> Q_REQUIRED_RESULT decltype(auto) transform(SC &&container, F function); -#ifdef Q_CC_CLANG +#if __cpp_template_template_args < 201611L // "Matching of template template-arguments excludes compatible templates" // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0522r0.html (P0522R0) // in C++17 makes the above match e.g. C=std::vector even though that takes two @@ -833,7 +833,7 @@ Q_REQUIRED_RESULT decltype(auto) transform(SC &&container, F function) return transform(std::forward(container), function); } -#ifdef Q_CC_CLANG +#if __cpp_template_template_args < 201611L template class C, // result container type typename SC, // input container type typename F, // function type