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 second stored base.
typedef Engine1 base2_type;
Remarks
The type is a synonym for the template parameter Engine2.
Example
// std_tr1__random__xor_combine_base2_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