के साथ यादृच्छिक 64 बिट इनट्स कैसे उत्पन्न करें मैं बूस्ट यादृच्छिक, का उपयोग कर यादृच्छिक 64 बिट हस्ताक्षरित पूर्णांक उत्पन्न करने की कोशिश कर रहा हूं लेकिन मुझे वर्दी_इन के साथ एक दावा विफलता मिल रही है।बूस्ट यादृच्छिक
struct timeval tv;
boost::mt19937 randGen(tval.tv_usec);
boost::uniform_int<> uInt64Dist(0, std::numeric_limits<uint64_t>::max());
boost::variate_generator<boost::mt19937&, boost::uniform_int<> > getRand(randGen, uInt64Dist);
uint64_t clock_seq_= getRand();
यहाँ लाइन पर उत्पादन हो जाता है है 3.
main:/usr/include/boost/random/uniform_int.hpp:48: boost::uniform_int<IntType>::uniform_int(IntType, IntType) [with IntType = int]: Assertion `min_arg <= max_arg' failed.
संपादित करें: अपने जवाब के आधार पर, मैं नीचे के साथ आकार निर्दिष्ट करने की कोशिश की:
boost:uniform_int<uint64_t> ....
लेकिन मैं मिलता है निम्नलिखित संकलन त्रुटि:
spec.cpp: In member function ‘void Specifier::initialize()’:
spec.cpp:58: error: no matching function for call to ‘boost::variate_generator<boost::mt19937&, boost::uniform_int<int> >::variate_generator(boost::mt19937&, boost::uniform_int<long unsigned int>&)’
/usr/include/boost/random/variate_generator.hpp:97: note: candidates are: boost::variate_generator<Engine, Distribution>::variate_generator(Engine, Distribution) [with Engine = boost::mt19937&, Distribution = boost::uniform_int<int>]
/usr/include/boost/random/variate_generator.hpp:87: note: boost::variate_generator<boost::mt19937&, boost::uniform_int<int> >::variate_generator(const boost::variate_generator<boost::mt19937&, boost::uniform_int<int> >&)
make: *** [spec.o] Error 1
संपादित करें: ठीक है, boost :: uniform_int के दूसरे उदाहरण को याद किया। एक बार जब मैं उन दोनों को मिला, तो यह सब जा रहा है।
सही, सुराग त्रुटि संदेश में है: '[IntType = int] के साथ '। –
और 'uint64_t'' boost/cstdint.hpp> 'में पाया जा सकता है। – GManNickG
वादा किया वादा किया, लेकिन अब यह संकलन नहीं करता है। मेरा अद्यतन प्रश्न देखें। – Matt