Unnamed (or anonymous) namespaces can be used for the functions appear only in file scope:
namespace {
std::mt19937 gen{std::random_device{}()}; using interval = std::uniform_int_distribution<>::param_type; using int_distrib_t = std::uniform_int_distribution<int>; int_distrib_t int_distrib;
std::uint8_t randomByte() { return int_distrib(gen, interval{0, 255}); } std::uint16_t randomWord() { return int_distrib(gen, interval{0, 65'535}); }
}
TEST_CASE("Sort impl. correctness") { std::vector<std::uint16_t> base(1'000); std::generate(begin(base), end(base), []() { return randomWord(); });
auto expected = base; std::sort(begin(expected), end(expected));
auto test = base; mine::sort(begin(test), end(test));
EXPECT_EQ(test == expected); }
|
more on: