#pragma once #include #include namespace rng { using seed_type = std::uint64_t; using engine_type = std::mt19937_64; inline engine_type& engine() { static thread_local engine_type eng{std::random_device{}()}; return eng; } inline void seed(seed_type value) { engine().seed(value); } }