#if __cplusplus >= 201703L #include enum bits { a, b, c, d }; int main() { { bitset t; assert(t.is_empty()); assert(!t.is_set(a)); assert(!t.is_set(b)); assert(!t.is_set(c)); assert(!t.is_set(d)); } { bitset t(b); assert(!t.is_empty()); assert(!t.is_set(a)); assert(t.is_set(b)); assert(!t.is_set(c)); assert(!t.is_set(d)); } { bitset t(a, c); assert(!t.is_empty()); assert(t.is_set(a)); assert(!t.is_set(b)); assert(t.is_set(c)); assert(!t.is_set(d)); } { bitset t; t.set(b, d); assert(!t.is_empty()); assert(!t.is_set(a)); assert(t.is_set(b)); assert(!t.is_set(c)); assert(t.is_set(d)); t.set(c); assert(!t.is_empty()); assert(!t.is_set(a)); assert(t.is_set(b)); assert(t.is_set(c)); assert(t.is_set(d)); t.unset(); assert(!t.is_empty()); t.unset(b, d); assert(!t.is_empty()); assert(!t.is_set(a)); assert(!t.is_set(b)); assert(t.is_set(c)); assert(!t.is_set(d)); t.unset(c); assert(t.is_empty()); assert(!t.is_set(a)); assert(!t.is_set(b)); assert(!t.is_set(c)); assert(!t.is_set(d)); } { bitset t; t.set(a, b, d); assert(!t.any()); assert(!t.any(c)); assert(t.any(a)); assert(t.any(a, c)); assert(t.any(a, b)); } { bitset t; t.set(a, b, d); assert(!t.all()); assert(!t.all(c)); assert(t.all(a)); assert(!t.all(a, c)); assert(t.all(a, b)); assert(t.all(a, b, d)); assert(!t.all(a, b, c, d)); } return 0; } #else #include int main() { puts("[bitset]: not built with >cpp17"); } #endif