fork(3) download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. template <typename T>
  5. struct wrapper
  6. {
  7. wrapper<T>* operator ->() { return this; }
  8.  
  9. std::vector<T>& myvec;
  10. };
  11.  
  12. template <typename T>
  13. class B
  14. {
  15. public:
  16. std::vector<T> data;
  17.  
  18. B(const std::vector<T>& init) : data(init) {}
  19.  
  20. wrapper<T> operator -> () { return {data}; }
  21.  
  22. };
  23.  
  24. int main()
  25. {
  26. B<double> obj({1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0});
  27.  
  28. obj->myvec[4] = -obj->myvec[4];
  29.  
  30. for (const auto& d : obj->myvec) {
  31. std::cout << d << std::endl;
  32. }
  33. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
1
2
3
4
-5
6
7
8
9
10