It\'s easy to construct a bitset<64> from a uint64_t:
bitset<64>
uint64_t
uint64_t flags = ...; std::bitset<64> bs{flags};
If initializing from range is important, you might consider using std::vector
It does have constructor from pair of iterators