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