mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-22 12:35:14 +00:00
AK: Allow Checked += Checked, and other such operations
The overflow state from both Checkeds is OR'ed in the result.
This commit is contained in:
parent
6b7c96589b
commit
dc17e01c99
Notes:
sideshowbarker
2024-07-18 22:43:56 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/dc17e01c992
1 changed files with 29 additions and 1 deletions
30
AK/Checked.h
30
AK/Checked.h
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2011-2019 Apple Inc. All rights reserved.
|
||||
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2020-2021, Andreas Kling <kling@serenityos.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -186,24 +186,52 @@ public:
|
|||
m_value /= other;
|
||||
}
|
||||
|
||||
constexpr Checked& operator+=(const Checked& other)
|
||||
{
|
||||
m_overflow |= other.m_overflow;
|
||||
add(other.value());
|
||||
return *this;
|
||||
}
|
||||
|
||||
constexpr Checked& operator+=(T other)
|
||||
{
|
||||
add(other);
|
||||
return *this;
|
||||
}
|
||||
|
||||
constexpr Checked& operator-=(const Checked& other)
|
||||
{
|
||||
m_overflow |= other.m_overflow;
|
||||
sub(other.value());
|
||||
return *this;
|
||||
}
|
||||
|
||||
constexpr Checked& operator-=(T other)
|
||||
{
|
||||
sub(other);
|
||||
return *this;
|
||||
}
|
||||
|
||||
constexpr Checked& operator*=(const Checked& other)
|
||||
{
|
||||
m_overflow |= other.m_overflow;
|
||||
mul(other.value());
|
||||
return *this;
|
||||
}
|
||||
|
||||
constexpr Checked& operator*=(T other)
|
||||
{
|
||||
mul(other);
|
||||
return *this;
|
||||
}
|
||||
|
||||
constexpr Checked& operator/=(const Checked& other)
|
||||
{
|
||||
m_overflow |= other.m_overflow;
|
||||
div(other.value());
|
||||
return *this;
|
||||
}
|
||||
|
||||
constexpr Checked& operator/=(T other)
|
||||
{
|
||||
div(other);
|
||||
|
|
Loading…
Add table
Reference in a new issue