Advertisement
Guest User

Untitled

a guest
Sep 21st, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.84 KB | None | 0 0
  1. const range = struct {
  2.     start: usize,
  3.     stepsz: usize,
  4.     end: usize,
  5.  
  6.     fn init(start_: usize, stepsz_: usize, end_: usize) @This() {
  7.         return range {
  8.             .start = start_,
  9.             .stepsz = stepsz_,
  10.             .end = end_
  11.         };
  12.     }
  13.     fn next(self: *@This()) ?usize {
  14.         if (self.start + self.stepsz <= self.end) {
  15.             var ret = self.start;
  16.             self.start += self.stepsz;
  17.             return ret;
  18.         }
  19.         return null;
  20.     }
  21.  
  22.     fn size(self: *@This()) usize {
  23.         return (self.end - self.start) / self.stepsz;
  24.     }
  25. };
  26.  
  27. pub fn main() void {
  28.     comptime var sum: usize = 0;
  29.     comptime {
  30.         var r = range.init(0, 10, 100);
  31.  
  32.         while(r.next()) |val| {
  33.             sum += val;
  34.         }
  35.     }
  36.  
  37.     @import("std").debug.warn("sum = {}\n", sum);
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement