#pragma once #include "random.h" namespace NPrivate { struct TRandom { inline operator unsigned char() { return RandomNumber(); } inline operator unsigned short() { return RandomNumber(); } inline operator unsigned int() { return RandomNumber(); } inline operator unsigned long() { return RandomNumber(); } inline operator unsigned long long() { return RandomNumber(); } inline operator bool() { return RandomNumber(); } inline operator float() { return RandomNumber(); } inline operator double() { return RandomNumber(); } inline operator long double() { return RandomNumber(); } }; } // namespace NPrivate static inline ::NPrivate::TRandom Random() noexcept { return {}; }