Commit Graph

23 Commits

Author SHA1 Message Date
Chocobo1
69d60b5f1c Specify interface requirements as an C++ concept
PR #19440.
2023-08-12 20:53:03 +08:00
Chocobo1
5c06d0aa75 Replace template conditionals with C++20 requires clause
Related: https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-constraints.html

PR #19424.
2023-08-09 20:33:19 +08:00
Chocobo1
7612d5d0ef Use default operators generated/synthesized by compiler 2023-07-22 02:25:44 +08:00
Chocobo1
33e6ca6778 Redesign Version class
PR #17484.
2022-08-06 11:06:16 +08:00
Chocobo1
a4c2363f43 Improve constructor of Version class
Now we can write `Version<int, 3, 1>(1)` and provide only 1 parameter
instead of all 3 parameters at once at the constructor. Note that for
this instance of `Version` 3 numbers were specified but only 1 is truly
mandatory.

The added code are required to specify conditions of the template
instantiation for the compiler.
2022-08-01 14:53:55 +08:00
Chocobo1
7c1a986e61 Implement stringable interface for Version type 2022-03-26 13:58:25 +08:00
Chocobo1
4ca6de2b54 Revise string literal usage
PR #16703.
2022-03-26 11:53:50 +08:00
Chocobo1
b8a7ecfe69 Introduce versioning on main configuration file 2021-12-11 01:45:49 +08:00
Chocobo1
e6f07a6fe4 Use implicit copy-constructor generated by compiler
This also suppresses the following clang warning:
warning: definition of implicit copy assignment operator for 'Version<unsigned short, 2>' is deprecated because it has a user-declared copy constructor [-Wdeprecated-copy]
2021-11-29 00:30:17 +08:00
Vladimir Golovnev (Glassez)
9565b695ef Unify custom exceptions 2021-05-18 08:40:05 +03:00
Vladimir Golovnev
c01d28a471 Merge pull request #13948 from FranciscoPombal/pragmatism
Use #pragma once instead of include guards
2020-12-14 13:51:02 +03:00
FranciscoPombal
6152b83405 Use #pragma once instead of include guards 2020-12-12 19:41:32 +00:00
Chocobo1
4d1d5d6b20 Revise Utils::Version comparison operators 2020-12-11 12:50:12 +08:00
Vladimir Golovnev (Glassez)
c41df9ffbd Improve coding style 2020-11-17 21:02:37 +03:00
Chocobo1
41773a5465 Fix unsafe type narrowing
Appending the warning below:
qBittorrent\src\base/utils/version.h(176): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
qBittorrent\src\base/utils/version.h(185): note: see reference to function template instantiation 'std::array<T,2> Utils::Version<T,2,2>::parseList<StringsList>(const StringsList &)' being compiled
        with
        [
            T=unsigned short,
            StringsList=QList<QByteArray>
        ]
2019-04-15 20:23:26 +08:00
thalieht
456270bbb1 Delete several unused #include 2018-07-03 08:38:32 +03:00
Chocobo1
3e6c8a05dd Reduce queries to python version
Instead of doing at least 2 queries for python infos, now requires only
1 query (in ideal condition), and the result is cached.
2018-06-24 19:41:44 +08:00
Chocobo1
b38925413d Improve Utils::Version class
Add operator>=() and operator<=().
More methods are suitable to be constexpr.
Remove redundant boundary checking.
2018-05-23 13:47:41 +08:00
thalieht
20ca90800d Fix coding style 2018-05-09 17:06:22 +03:00
Thomas Piccirello
7b3e692f68 Fix missing initializer warning
This issue occurs when using gcc versions < 5.
2018-03-12 01:21:21 -04:00
Eugene Shalygin
ef1597e45b Fix ignoring of incorrect version strings in search plugins. Closes #7101.
Printing of Version with all components set to zero was segfaulting due
to underflow in array index. Also add log message for such plugins.
2017-08-20 22:44:20 +02:00
Chocobo1
562080de69 Initialize variable
Fixes coverity CID 161628
2017-05-20 11:38:39 +08:00
Eugene Shalygin
14e168039c Use explicit class for search plugin versions 2017-04-21 09:47:08 +02:00