#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,};};}