mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-12 09:20:36 +00:00
AK: Add MakeSigned<T> helper template
This commit is contained in:
parent
6cefb96e98
commit
e90ecdda48
Notes:
sideshowbarker
2024-07-19 06:13:31 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/e90ecdda480
1 changed files with 55 additions and 0 deletions
|
@ -362,6 +362,60 @@ struct MakeUnsigned<unsigned long long> {
|
|||
typedef unsigned long long type;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct MakeSigned {
|
||||
};
|
||||
|
||||
template<>
|
||||
struct MakeSigned<char> {
|
||||
typedef char type;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct MakeSigned<short> {
|
||||
typedef short type;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct MakeSigned<int> {
|
||||
typedef int type;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct MakeSigned<long> {
|
||||
typedef long type;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct MakeSigned<long long> {
|
||||
typedef long long type;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct MakeSigned<unsigned char> {
|
||||
typedef char type;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct MakeSigned<unsigned short> {
|
||||
typedef short type;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct MakeSigned<unsigned int> {
|
||||
typedef int type;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct MakeSigned<unsigned long> {
|
||||
typedef long type;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct MakeSigned<unsigned long long> {
|
||||
typedef long long type;
|
||||
};
|
||||
|
||||
template<typename T, typename U = T>
|
||||
inline constexpr T exchange(T& slot, U&& value)
|
||||
{
|
||||
|
@ -378,6 +432,7 @@ using AK::Conditional;
|
|||
using AK::exchange;
|
||||
using AK::forward;
|
||||
using AK::IsSame;
|
||||
using AK::MakeSigned;
|
||||
using AK::MakeUnsigned;
|
||||
using AK::max;
|
||||
using AK::min;
|
||||
|
|
Loading…
Reference in a new issue