fork download
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <memory>
  4. #include <vector>
  5.  
  6. class MakeIntPtr {
  7. public:
  8. explicit MakeIntPtr(int v) : value_(v) {}
  9. operator std::unique_ptr<int>() {
  10. return std::unique_ptr<int>(new int(value_));
  11. }
  12. MakeIntPtr& operator++() { ++value_; return *this; }
  13. private:
  14. int value_;
  15. };
  16.  
  17. int main() {
  18. std::vector<std::unique_ptr<int>> nums(98);
  19. std::iota(begin(nums), end(nums), MakeIntPtr(3));
  20.  
  21. std::cout << *nums[0] << ' ' << *nums[1] << ' ' << *nums[2];
  22. return 0;
  23. }
  24.  
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
3 4 5