generators.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 71 行

HPP
71
字号
// Copyright 2005-2008 Daniel James.// Distributed under the Boost Software License, Version 1.0. (See accompanying// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)// This uses std::rand to generate random values for tests.// Which is not good as different platforms will be running different tests.// It would be much better to use Boost.Random, but it doesn't// support all the compilers that I want to test on.#if !defined(BOOST_UNORDERED_TEST_HELPERS_GENERATORS_HEADER)#define BOOST_UNORDERED_TEST_HELPERS_GENERATORS_HEADER#include <string>#include <utility>#include <stdexcept>#include <cstdlib>#include <boost/type_traits/add_const.hpp>#include "./fwd.hpp"namespace test{    struct seed_t {        seed_t(unsigned int x) {            using namespace std;            srand(x);        }    };    inline int generate(int const*)    {        using namespace std;        return rand();    }    inline char generate(char const*)    {        using namespace std;        return static_cast<char>((rand() >> 1) % (128-32) + 32);    }    inline signed char generate(signed char const*)    {        using namespace std;        return static_cast<signed char>(rand());    }    inline std::string generate(std::string const*)    {        using namespace std;        char* char_ptr = 0;        std::string result;        int length = rand() % 10;        for(int i = 0; i < length; ++i)            result += generate(char_ptr);        return result;    }    float generate(float const*)    {        using namespace std;        return (float) rand() / (float) RAND_MAX;    }}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?