>>106591485
It actually forwards array type information, something C retards can never even dream of.
u8
main() noexcept
{
u32 const start = prng::next();
u32 value;
u32 count = 1;
print("Hello, World!\nstart = ", start, "\n");
while (start != (value = prng::next()))
{
count++;
}
print
(
"u32 possible states = ", u64(u32(-1)) + 1,
"\nprng state count = ", count,
"\nvalue = ", value,
"\nGoodbye, World!\n"
);
return 0;
}
% make && time ./a.out && strace ./a.out >/dev/null
make: 'a.out' is up to date.
Hello, World!
start = 2479868772
u32 possible states = 4294967296
prng state count = 4294967295
value = 2479868772
Goodbye, World!
./a.out 13.55s user 0.00s system 99% cpu 13.582 total
execve("./a.out", ["./a.out"], 0x7fff01d10970 /* 42 vars */) = 0
writev(1, [{iov_base="Hello, World!\nstart = ", iov_len=22}, {iov_base="2479868772", iov_len=10}, {iov_base="\n", iov_len=1}], 3) = 33
writev(1, [{iov_base="u32 possible states = ", iov_len=22}, {iov_base="4294967296", iov_len=10}, {iov_base="\nprng state count = ", iov_len=20}, {iov_base="4294967295", iov_len=10}, {iov_base="\nvalue = ", iov_len=9}, {iov_base="2479868772", iov_len=10}, {iov_base="\nGoodbye, World!\n", iov_len=17}],
7) = 98
exit(0) = ?
+++ exited with 0 +++
>>106591505
I'm not a goycattle wagiecuck, so I think I'll pass, my only dependencies are x86-64 and Linux and I don't need more.