Add util::is_pow2

This commit is contained in:
Nikita Lisitsa 2025-08-29 16:39:19 +03:00
parent fa214ed956
commit d2f35276bf

View file

@ -5,8 +5,15 @@
namespace psemek::util
{
// log2 rounded down
template <typename T>
bool is_pow2(T x)
{
static_assert(std::is_integral_v<T>);
return (x > 0) && ((x & (x - 1)) == 0);
}
// log2 rounded down
template <typename T>
T log2(T x)
{