Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. class my_array {
  4. class proxy;
  5.  
  6. private:
  7. uint8_t data;
  8.  
  9. public:
  10. my_array() { data = 0; }
  11.  
  12. const bool operator[] (const size_t i) const {
  13. return (bool) proxy(data, 1 << i);
  14. }
  15.  
  16. proxy operator[] (const size_t i) {
  17. return proxy(data, 1 << i)
  18. }
  19.  
  20. };
  21.  
  22.  
  23. class my_array::proxy {
  24. private:
  25. uint8_t & data;
  26. uint8_t msk;
  27.  
  28. public:
  29. proxy(const uint8_t & data, const uint8_t msk) : data(data), msk(msk) {}
  30.  
  31. operator bool() const {
  32. return (bool) data & msk;
  33. }
  34.  
  35. proxy & operator= (const bool b) {
  36. if (b) {
  37. data |= msk;
  38. }
  39. else {
  40. data &= ~msk;
  41. }
  42. return *this;
  43. }
  44.  
  45. proxy & operator= (const proxy p) = delete;
  46.  
  47. /* ^^^ \eq ^^^
  48. * proxy & operator= (const proxy p) {
  49. *this = (bool) t;
  50. }*/
  51.  
  52. };
  53.  
  54. int main() {
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement