Why is it not a const? I think this is not a clear C++ way.
Perhaps there is a more C++ way to generate random numbers, is there?
views:
130answers:
3
+5
A:
If you're looking for a "more C++-way", you could use boost::random.
Anyway, RAND_MAX is a macro, because it comes from "legacy C" rand() function, where using preprocessor symbols for declaring constants was a de-facto standard.
HardCoder1986
2010-09-30 14:26:11
+11
A:
RAND_MAX comes from the C standard library, where it is defined as a macro.
In C, macros are the way manifest constants are defined. A const object isn't actually a constant in C (this means a const object cannot be used in constant expressions).
James McNellis
2010-09-30 14:26:54
+1 (... which expands to an integer constant expression).
schot
2010-09-30 14:28:53
+1
A:
It's a macro because it comes from C where it's been a macro for a long time.
- Boost random would be one alternative.
- TR1's random number generation classes would be another.
- Unlike most of TR1, the PRNG classes are being completely revised for C++0x.
Jerry Coffin
2010-09-30 14:29:35