On 7/11/20 1:03 AM, Kagamin wrote:
Steven's solution isn't good in the general case
Right, you need to know that SysTime is actually a value type, and so it
can be implicitly copied without problems with aliasing.
In fact, the cast isn't needed to ensure there is no lingering aliasing.
I can tell it's a value type because:
const SysTime x;
SysTime y;
y = x; // ok.
Likewise, I technically could just copy to a shared one, but the problem
is that the actual act of writing the field is subject to memory
problems. It has nothing to do with the SysTime internals.
To make the solution more "correct" you could mark the incoming SysTime
as const.
-Steve