/
githubmirror
/
json
Обзор
Документация
Войти
/
githubmirror
/
json
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
tests/thirdparty/Fuzzer/FuzzerRandom.h
36 строк
1 KB
Niels Lohmann
Reorganize directories (#3462)
01 май 2022, 10:41
Не верифицирован
01 май 2022, 10:41
b21c345
Код
Авторство
О чём код?
//===- FuzzerRandom.h - Internal header for the Fuzzer ----------*- C++ -* ===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // fuzzer::Random //===----------------------------------------------------------------------===// #ifndef LLVM_FUZZER_RANDOM_H #define LLVM_FUZZER_RANDOM_H #include <random> namespace fuzzer { class Random { public: Random(unsigned int seed) : R(seed) {} size_t Rand() { return R(); } size_t RandBool() { return Rand() % 2; } size_t operator()(size_t n) { return n ? Rand() % n : 0; } intptr_t operator()(intptr_t From, intptr_t To) { assert(From < To); intptr_t RangeSize = To - From + 1; return operator()(RangeSize) + From; } std::mt19937 &Get_mt19937() { return R; } private: std::mt19937 R; }; } // namespace fuzzer #endif // LLVM_FUZZER_RANDOM_H