diff options
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/sqlite/sqlitebasestatement.h | 26 | ||||
-rw-r--r-- | src/libs/sqlite/sqlitereadstatement.h | 10 | ||||
-rw-r--r-- | src/libs/sqlite/sqlitereadwritestatement.h | 16 |
3 files changed, 28 insertions, 24 deletions
diff --git a/src/libs/sqlite/sqlitebasestatement.h b/src/libs/sqlite/sqlitebasestatement.h index fd57b4f8f1..397068477c 100644 --- a/src/libs/sqlite/sqlitebasestatement.h +++ b/src/libs/sqlite/sqlitebasestatement.h @@ -27,6 +27,12 @@ using std::int64_t; +#ifdef Q_CC_MSVC +#define FLATTEN [[msvc::flatten]] +#else +#define FLATTEN [[gnu::flatten]] +#endif + namespace Sqlite { class Database; @@ -150,7 +156,7 @@ public: using BaseStatement::BaseStatement; StatementImplementation(StatementImplementation &&) = default; - void execute() + FLATTEN void execute() { Resetter resetter{this}; BaseStatement::next(); @@ -166,7 +172,7 @@ public: } template<typename... ValueType> - void write(const ValueType&... values) + FLATTEN void write(const ValueType &...values) { Resetter resetter{this}; bindValues(values...); @@ -190,7 +196,7 @@ public: std::size_t capacity = 32, typename = std::enable_if_t<is_container<Container>::value>, typename... QueryTypes> - auto values(const QueryTypes &...queryValues) + FLATTEN auto values(const QueryTypes &...queryValues) { Resetter resetter{this}; Container resultValues; @@ -211,7 +217,7 @@ public: template<typename...> typename Container = std::vector, typename = std::enable_if_t<!is_container<ResultType>::value>, typename... QueryTypes> - auto values(const QueryTypes &...queryValues) + FLATTEN auto values(const QueryTypes &...queryValues) { return values<Container<ResultType>, capacity>(queryValues...); } @@ -231,7 +237,7 @@ public: } template<typename ResultType, typename... QueryTypes> - auto optionalValue(const QueryTypes &...queryValues) + FLATTEN auto optionalValue(const QueryTypes &...queryValues) { Resetter resetter{this}; std::optional<ResultType> resultValue; @@ -245,7 +251,7 @@ public: } template<typename Type> - static auto toValue(Utils::SmallStringView sqlStatement, Database &database) + FLATTEN static auto toValue(Utils::SmallStringView sqlStatement, Database &database) { StatementImplementation statement(sqlStatement, database); @@ -257,7 +263,7 @@ public: } template<typename Callable, typename... QueryTypes> - void readCallback(Callable &&callable, const QueryTypes &...queryValues) + FLATTEN void readCallback(Callable &&callable, const QueryTypes &...queryValues) { Resetter resetter{this}; @@ -272,7 +278,7 @@ public: } template<typename Container, typename... QueryTypes> - void readTo(Container &container, const QueryTypes &...queryValues) + FLATTEN void readTo(Container &container, const QueryTypes &...queryValues) { Resetter resetter{this}; @@ -283,13 +289,13 @@ public: } template<typename ResultType, typename... QueryTypes> - auto range(const QueryTypes &...queryValues) + FLATTEN auto range(const QueryTypes &...queryValues) { return SqliteResultRange<ResultType>{*this, queryValues...}; } template<typename ResultType, typename... QueryTypes> - auto rangeWithTransaction(const QueryTypes &...queryValues) + FLATTEN auto rangeWithTransaction(const QueryTypes &...queryValues) { return SqliteResultRangeWithTransaction<ResultType>{*this, queryValues...}; } diff --git a/src/libs/sqlite/sqlitereadstatement.h b/src/libs/sqlite/sqlitereadstatement.h index 4f8091598b..eebce41780 100644 --- a/src/libs/sqlite/sqlitereadstatement.h +++ b/src/libs/sqlite/sqlitereadstatement.h @@ -32,7 +32,7 @@ public: using Base::values; template<typename ResultType, typename... QueryTypes> - auto valueWithTransaction(const QueryTypes &...queryValues) + FLATTEN auto valueWithTransaction(const QueryTypes &...queryValues) { return withDeferredTransaction(Base::database(), [&] { return Base::template value<ResultType>(queryValues...); @@ -40,7 +40,7 @@ public: } template<typename ResultType, typename... QueryTypes> - auto optionalValueWithTransaction(const QueryTypes &...queryValues) + FLATTEN auto optionalValueWithTransaction(const QueryTypes &...queryValues) { return withDeferredTransaction(Base::database(), [&] { return Base::template optionalValue<ResultType>(queryValues...); @@ -48,7 +48,7 @@ public: } template<typename ResultType, std::size_t capacity = 32, typename... QueryTypes> - auto valuesWithTransaction(const QueryTypes &...queryValues) + FLATTEN auto valuesWithTransaction(const QueryTypes &...queryValues) { return withDeferredTransaction(Base::database(), [&] { return Base::template values<ResultType, capacity>(queryValues...); @@ -56,7 +56,7 @@ public: } template<typename Callable, typename... QueryTypes> - void readCallbackWithTransaction(Callable &&callable, const QueryTypes &...queryValues) + FLATTEN void readCallbackWithTransaction(Callable &&callable, const QueryTypes &...queryValues) { withDeferredTransaction(Base::database(), [&] { Base::readCallback(std::forward<Callable>(callable), queryValues...); @@ -64,7 +64,7 @@ public: } template<typename Container, typename... QueryTypes> - void readToWithTransaction(Container &container, const QueryTypes &...queryValues) + FLATTEN void readToWithTransaction(Container &container, const QueryTypes &...queryValues) { withDeferredTransaction(Base::database(), [&] { Base::readTo(container, queryValues...); }); } diff --git a/src/libs/sqlite/sqlitereadwritestatement.h b/src/libs/sqlite/sqlitereadwritestatement.h index 2b3e6c3247..8e3825cb52 100644 --- a/src/libs/sqlite/sqlitereadwritestatement.h +++ b/src/libs/sqlite/sqlitereadwritestatement.h @@ -32,7 +32,7 @@ public: using Base::write; template<typename ResultType, typename... QueryTypes> - auto valueWithTransaction(const QueryTypes &...queryValues) + FLATTEN auto valueWithTransaction(const QueryTypes &...queryValues) { return withImmediateTransaction(Base::database(), [&] { return Base::template value<ResultType>(queryValues...); @@ -40,17 +40,15 @@ public: } template<typename ResultType, typename... QueryTypes> - auto optionalValueWithTransaction(const QueryTypes &...queryValues) + FLATTEN auto optionalValueWithTransaction(const QueryTypes &...queryValues) { return withImmediateTransaction(Base::database(), [&] { return Base::template optionalValue<ResultType>(queryValues...); }); } - template<typename ResultType, - std::size_t capacity = 32, - typename... QueryTypes> - auto valuesWithTransaction(const QueryTypes &...queryValues) + template<typename ResultType, std::size_t capacity = 32, typename... QueryTypes> + FLATTEN auto valuesWithTransaction(const QueryTypes &...queryValues) { return withImmediateTransaction(Base::database(), [&] { return Base::template values<ResultType, capacity>(queryValues...); @@ -58,7 +56,7 @@ public: } template<typename Callable, typename... QueryTypes> - void readCallbackWithTransaction(Callable &&callable, const QueryTypes &...queryValues) + FLATTEN void readCallbackWithTransaction(Callable &&callable, const QueryTypes &...queryValues) { withImmediateTransaction(Base::database(), [&] { Base::readCallback(std::forward<Callable>(callable), queryValues...); @@ -66,14 +64,14 @@ public: } template<typename Container, typename... QueryTypes> - void readToWithTransaction(Container &container, const QueryTypes &...queryValues) + FLATTEN void readToWithTransaction(Container &container, const QueryTypes &...queryValues) { withImmediateTransaction(Base::database(), [&] { Base::readTo(container, queryValues...); }); } - void executeWithTransaction() + FLATTEN void executeWithTransaction() { withImmediateTransaction(Base::database(), [&] { Base::execute(); |