diff --git a/alib2std/src/extensions/init.cpp b/alib2std/src/extensions/init.cpp index ba080469943fc36b80cfacd2f61c0abbe90c2972..53e84005f502c4066a7f47cf280b372636109b20 100644 --- a/alib2std/src/extensions/init.cpp +++ b/alib2std/src/extensions/init.cpp @@ -17,7 +17,7 @@ Init::Init ( ) : clog_fdaccessor ( CLOG_FD, CERR_FD ), clog_fdstreambuf ( clog_f std::clog.rdbuf ( & clog_fdstreambuf ); std::clog.clear ( ); - ext::random_devices::semirandom.seed ( ext::random_devices::random ( ) ); + ext::random_devices::getSemirandom ( ).seed ( ext::random_devices::getRandom ( ) ( ) ); } Init::~Init ( ) { diff --git a/alib2std/src/extensions/random.cpp b/alib2std/src/extensions/random.cpp index 941eae43599bbedb76ee5acf56cbc5f0d3771cb3..4a78705ae8e917a8e3c149249ff2f82df6e509d8 100644 --- a/alib2std/src/extensions/random.cpp +++ b/alib2std/src/extensions/random.cpp @@ -9,7 +9,7 @@ namespace ext { - std::random_device random_devices::random; - random_devices::semirandom_device random_devices::semirandom; + std::random_device & random_devices::random = getRandom ( ); + random_devices::semirandom_device & random_devices::semirandom = getSemirandom ( ); } /* namespace ext */ diff --git a/alib2std/src/extensions/random.hpp b/alib2std/src/extensions/random.hpp index 81a5631934322a493fe1dde0db61df82430f4aab..88642fc06dd28b3061ab8faafe573bcbc429fce8 100644 --- a/alib2std/src/extensions/random.hpp +++ b/alib2std/src/extensions/random.hpp @@ -15,7 +15,12 @@ namespace ext { class random_devices { public: - static std::random_device random; + static std::random_device & getRandom ( ) { + static std::random_device res; + return res; + } + + static std::random_device & random; private: class semirandom_device { @@ -47,7 +52,12 @@ private: } }; public: - static semirandom_device semirandom; + static semirandom_device & getSemirandom ( ) { + static semirandom_device res; + return res; + } + + static semirandom_device & semirandom; };