C++ Syntax for accessing operator () from a pointer to an object -


i have instance of c++ 11 random number distribution; uniform_int_distribution, , instance of c++ m19937_64 algorithm.

i passing references these using pointers class maintains pointer these 2 objects later use.

in member function of class, wish call operator() function generate random number uniform_int_distribution.

i have done following. (may incorrect, hence question.)

std::random_device rd; std::mt19937_64 gen(rd()); std::mt19937_64 *gen_p = &gen; std::uniform_int_distribution<int> dis(0, 9); std::uniform_int_distribution<int> *dis_p = &dis; 

then following: (later in code, within class member function.)

int random_number = (*dis_p)(*gen_p); 

this looks bit strange or ambiguous, or @ least me since i've not encountered before.

without pointers, 1 following:

int random_number = dis(gen_p); 

use either

(*dis_p)(*gen_p); 

(as are) or

dis_p->operator()(*gen_p); 

personally, however, not use pointers @ all. instead

dis(gen); 

will trick (since dis_p points @ dis , gen_p points @ gen).

it possible store references in class (albeit need initialised using constructor, , cannot reseated pointers can).


Comments

Popular posts from this blog

html - Outlook 2010 Anchor (url/address/link) -

javascript - Why does running this loop 9 times take 100x longer than running it 8 times? -

Getting gateway time-out Rails app with Nginx + Puma running on Digital Ocean -