Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The type of the first stored engine.
typedef Engine1 base1_type;
Remarks
The type is a synonym for the template parameter Engine1.
Example
// std_tr1__random__xor_combine_base1_type.cpp
// compile with: /EHsc
#include <random>
#include <iostream>
typedef std::subtract_with_carry<unsigned int,
1 << 24, 10, 24> Myeng1;
typedef std::linear_congruential<unsigned int,
16807, 0, (1U << 31) - 1> Myeng2;
typedef std::xor_combine<Myeng1, 1, Myeng2, 2> Myceng;
int main()
{
Myeng1 eng1;
Myeng2 eng2;
Myceng ceng;
const Myceng::base1_type& base1 = ceng.base1(); // get base engine
const Myceng::base2_type& base2 = ceng.base2(); // get base engine
Myceng::result_type compval = ceng();
compval = compval; // to quiet "unused" warnings
base1.min();
base2.min();
std::cout << "S1 == " << Myceng::shift1 << std::endl;
std::cout << "S2 == " << Myceng::shift2 << std::endl;
std::cout << "min == " << ceng.min() << std::endl;
std::cout << "max == " << ceng.max() << std::endl;
ceng.seed(); // reseed base engine
std::cout << "a random value == " << ceng() << std::endl;
std::cout << "a random value == " << ceng() << std::endl;
std::cout << "a random value == " << ceng() << std::endl;
Myceng ceng2(eng1); // construct with generator
ceng2.seed(eng1); // seed with generator
return (0);
}
S1 == 1 S2 == 2 min == 0 max == 4294967294 a random value == 30142660 a random value == 1118486894 a random value == 2204980952
Requirements
Header: <random>
Namespace: std