1
0
Fork 0

Codechange: Add AssignBit function to assign the value of a single bit

pull/12934/head
Jonathan G Rennison 2024-09-08 12:12:26 +01:00
parent 81b684aa42
commit 9422a09e6b
1 changed files with 19 additions and 0 deletions

View File

@ -183,6 +183,25 @@ constexpr T ToggleBit(T &x, const uint8_t y)
return x = (T)(x ^ ((T)1U << y));
}
/**
* Assigns a bit in a variable.
*
* This function assigns a single bit in a variable. The variable is
* changed and the value is also returned. Parameter y defines the bit
* to assign and starts at the LSB with 0.
*
* @param x The variable to assign the bit
* @param y The bit position to assign
* @param value The new bit value
* @pre y < sizeof(T) * 8
* @return The new value of the old value with the bit assigned
*/
template <typename T>
constexpr T AssignBit(T &x, const uint8_t y, bool value)
{
return SB<T>(x, y, 1, value ? 1 : 0);
}
/**
* Search the first set bit in a value.
* When no bit is set, it returns 0.