This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD Concepts status.
1149. Reformulating NonemptyRange axiomSection: 99 [rand.concept.urng] Status: NAD Concepts Submitter: Walter Brown Opened: 2009-06-25 Last modified: 2016-01-28
Priority: Not Prioritized
View all issues with NAD Concepts status.
Discussion:
In 99 [rand.concept.urng], we have the following:
concept UniformRandomNumberGenerator<typename G> : Callable<G> { ... axiom NonemptyRange(G& g) { G::min() < G::max(); } ... }
Since the parameter G
is in scope throughout the concept, there is no need for the axiom to be further parameterized, and so the axiom can be slightly simplified as:
axiom NonemptyRange() { G::min() < G::max(); }
We can further reformulate so as to avoid any axiom machinery as:
requires True< G::min() < G::max() >;
This is not only a simpler statement of the same requirement, but also forces the requirement to be checked.
[ Post-Rapperswil: ]
Moved to Tentatively Ready after 5 positive votes on c++std-lib.
Proposed resolution:
In 99 [rand.concept.urng], replace the NonemptyRange
axiom by:
axiom NonemptyRange(G& g) { G::min() < G::max(); } requires True< G::min() < G::max() >;
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4