On Tuesday, 29 October 2019 at 22:24:20 UTC, Robert M. Münch wrote:
I quite often have the pattern where a value should be read just once and after this reset itself. The idea is to avoid that others read the value by accident and get an older state, instead they get an "invalid/reset" value.

Is there a library function that can mimic such a behaviour?

Something like this?

T readOnce(T)(ref T value) {
    auto tmp = value;
    value = T.init;
    return tmp;
} unittest {
    int i = 3;
    assert(i.readOnce == 3);
    assert(i == 0);
}

If so, no, there is no library function for it, but feel free to use the above. You may very well have to change T.init to something more fitting for your use case, of course.

If this is not what you need, feel free to explain further, as I'm not sure I understood you correctly. :)

--
  Simen

Reply via email to