logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

FBB::RandBuffer - std::streambuf generating random numbers

Author

       Frank B. Brokken (f.b.brokken@rug.nl).

libbobcat-dev_6.07.01                               2005-2025                           FBB::RandBuffer(3bobcat)

Bobcat

       Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.

Bobcat Project Files

       o      https://fbb-git.gitlab.io/bobcat/: gitlab project page;

       Debian Bobcat project files:

       o      libbobcat6: debian package containing the shared library, changelog and copyright note;

       o      libbobcat-dev:  debian package containing the static library, headers, manual pages, and developer
              info;

Bugs

       None Reported.

Constructor

       o      RandBuf(intmin,intmax,size_tseed=1):
              This RandBuf() constructor initializes the random generator. The seed is used  to  initialize  the
              random number generator.Random values between min and max (inclusive) are returned.

       Copy and move constructors (and assignment operators) are not available.  `

Description

FBB:RandBuffer objects may be used as a std::streambuf of std::istream objects to allow the extraction of
       random numbers from the stream.

Example

       #include <iostream>
       #include <istream>

       #include <bobcat/randbuf>

       using namespace std;
       using namespace FBB;

       int main(int argc, char **argv)
       {
           if (argc == 1)
           {
               cout << "expect: nruns min max seed\n";
               return 1;
           }

           RandBuf rb(stoi(argv[2]), stoi(argv[3]), stoul(argv[4]));

           istream istr(&rb);

           for (unsigned idx = stoul(argv[1]); idx--; )
           {
               int c;
               if (!(istr >> c))
               {
                   cout << "extraction failed\n";
                   break;
               }
               cout << "next: " << c << endl;
           }

           int count = 0;
           while (istr.unget())
               count++;

           cout << "number of successful unget()-calls: " << count << endl;
           istr.clear();
           istr >> count;
           cout << "and read: " << count << endl;
       }

Files

bobcat/randbuf - defines the class interface

Inherited Members

       Since the class uses public derivation from std::streambuf, all members of this class can be used.

Inherits From

       std::streambuf

Name

       FBB::RandBuffer - std::streambuf generating random numbers

Namespace

FBB
       All  constructors,  members,  operators  and manipulators, mentioned in this man-page, are defined in the
       namespace FBB.

See Also

bobcat(7), irandstream(3bobcat), randommt(3bobcat), std::streambuf

Synopsis

#include<bobcat/randbuf>
       Linking option: -lbobcat

Virtual Members

       o      intunderflow():
              This  function  is  called  by  std::istream objects using RandBuf. It produces the next available
              random number, separating the random numbers by one blanks space. Random values  between  min  and
              max (inclusive) are returned (see the description of the constructor).

See Also