Цель состоит в том, чтобы преобразовать std::uint64_t
(который используется в качестве битовой маски) в std::array<bool>
.
Этот вопрос похож на вопрос C # Как я могу преобразовать int в массив bool? , но для C ++ и я ищу алгоритм с наилучшей производительностью .
Учитывая std::uint64_t
, который используется в качестве битовой маски, я знаю, что можно просто циклически перебирать его содержимое и битовое сравнение устанавливать значения в те же позиции в std::array<bool>
.
Но во всемогущем C ++ имеет , чтобы быть более эффективным способом! Может быть, какие-то грязные приведения, мальлоки или еще много чего? Все отлично; Я нахожусь на Windows / GCC, так что даже функции только GCC полностью разрешены.