Moving headers into include/sls (#212)

This commit is contained in:
Erik Fröjdh
2020-11-02 16:05:28 +01:00
committed by GitHub
parent a57bbc084c
commit a15d8dd30a
199 changed files with 417 additions and 413 deletions

View File

@ -0,0 +1,19 @@
#pragma once
#include <bitset>
#include <vector>
namespace sls {
template <typename T> std::vector<int> getSetBits(T val) {
constexpr size_t bitsPerByte = 8;
constexpr size_t numBits = sizeof(T) * bitsPerByte;
std::bitset<numBits> bs(val);
std::vector<int> set_bits;
set_bits.reserve(bs.count());
for (size_t i = 0; i < bs.size(); ++i) {
if (bs[i]) {
set_bits.push_back(static_cast<int>(i));
}
}
return set_bits;
}
} // namespace sls