Hi,

On 08/26/2012 07:19 PM, Ulrich Drepper wrote:
On Sun, Aug 26, 2012 at 10:27 AM, Paolo Carlini
<paolo.carl...@oracle.com> wrote:
Thus, all in all, for the time being I would go with __generate.
OK, here's a version of the patch with the patch for 54376 already assumed.

I changed to function name to __generate.  I feel much more
comfortable with using the leading underscores.

I changed _OutputIterator to _ForwardIterator.
If you have things like:

+      template<typename _UniformRandomNumberGenerator,
+              typename _ForwardIterator>
+       void
+       __generate(_ForwardIterator __f, _ForwardIterator __t,
+                  _UniformRandomNumberGenerator& __urng)


then probably you want to swap the template parameters (or viceversa):

+      template<typename _ForwardIterator,
+              typename _UniformRandomNumberGenerator>
+       void
+       __generate(_ForwardIterator __f, _ForwardIterator __t,
+                  _UniformRandomNumberGenerator& __urng)


Frankly, I'm finding the forwarding via __gnu_cxx::__normal_iterator pretty ugly. Can't we have instead an internal, private, __generate_impl(_ForwardIterator, _ForwardIterator, _UniformRandomNumberGenerator&, const param_type&) which is called by both the variant of __generate taking iterators and the variant taking pointers?

Paolo.

Reply via email to