#include /* cout */ #include /* initializer_list */ #include /* size_t */ #include /* any, any_cast */ #include /* dynamic_bitset */ #include /* BOOST_FOREACH */ /* optional */ #if __cplusplus < 201703L #include #else #include #endif using namespace std; using namespace boost; // Typedefs typedef struct { dynamic_bitset<> bits; } byte; typedef decltype(byte().bits) bits; // typedef dynamic_bitset<> bits; // Function declarations bits DynamischesBitsetErstellen(initializer_list>); int main() { any db = DynamischesBitsetErstellen({1, 0, 1, {}, 0, {}, 1, 0}); byte b ; for(size_t i = 0; i < any_cast(db).size(); i++) cout << any_cast(db)[i] << ((i+1)%4==0?" ":""); return 0; } // Function definitions bits DynamischesBitsetErstellen(initializer_list> il) { bits db; BOOST_FOREACH(optional b, il) db.push_back(b.value_or(0)); return db; }