Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class my_array {
- class proxy;
- private:
- uint8_t data;
- public:
- my_array() { data = 0; }
- const bool operator[] (const size_t i) const {
- return (bool) proxy(data, 1 << i);
- }
- proxy operator[] (const size_t i) {
- return proxy(data, 1 << i)
- }
- };
- class my_array::proxy {
- private:
- uint8_t & data;
- uint8_t msk;
- public:
- proxy(const uint8_t & data, const uint8_t msk) : data(data), msk(msk) {}
- operator bool() const {
- return (bool) data & msk;
- }
- proxy & operator= (const bool b) {
- if (b) {
- data |= msk;
- }
- else {
- data &= ~msk;
- }
- return *this;
- }
- proxy & operator= (const proxy p) = delete;
- /* ^^^ \eq ^^^
- * proxy & operator= (const proxy p) {
- *this = (bool) t;
- }*/
- };
- int main() {
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement