This also removes potential thread safety bug in that function.pull/351/head
parent
b974ccde3a
commit
67cc83a66c
@ -0,0 +1,26 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
namespace tools
|
||||||
|
{
|
||||||
|
template<uint64_t a, uint64_t b>
|
||||||
|
struct PowerOf
|
||||||
|
{
|
||||||
|
enum Data : uint64_t
|
||||||
|
{
|
||||||
|
// a^b = a * a^(b-1)
|
||||||
|
Value = a * PowerOf<a, b - 1>::Value,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
template<uint64_t a>
|
||||||
|
struct PowerOf<a, 0>
|
||||||
|
{
|
||||||
|
enum Data : uint64_t
|
||||||
|
{
|
||||||
|
// a^0 = 1
|
||||||
|
Value = 1,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in new issue