[range] location of numeric algorithms
Hi, Is there any reason the numeric algorithms in Boost.Range (accumulate(), inner_product(), etc.) are located in boost/range/numeric.hpp rather than in files named boost/range/algorithm/<algorithm-name>.hpp like every other algorithm? I think it's confusing for users who expect the uniform file naming convention that Boost.Range applies to other algorithms, to apply to these ones too. Thanks, Nate
Hi Nate, Nathan Ridge wrote:
Hi,
Is there any reason the numeric algorithms in Boost.Range (accumulate(), inner_product(), etc.) are located in boost/range/numeric.hpp rather than in files named boost/range/algorithm/<algorithm-name>.hpp like every other algorithm? I think it's confusing for users who expect the uniform file naming convention that Boost.Range applies to other algorithms, to apply to these ones too.
I do find it a little surprising that there's boost/range/algorithm/*.hpp, but only boost/range/numeric.hpp. I would be surprised to have a boost/range/algorithm/accumulate.hpp, but so long as numeric.hpp continues to exist, it's not such a bad thing. Would you envision boost/range/algorithm.hpp pulling in the numeric algorithms? I don't think the minor coupling implied is too bad, I'm just curious. I find the current numeric versus algorithm division as sensible as it is in the standard library -- and since I dealt with that for a long time before discovering boost.range, it didn't surprise me too much. Those coming at it a different way may feel differently, of course. Thanks, Nate
Is there any reason the numeric algorithms in Boost.Range (accumulate(), inner_product(), etc.) are located in boost/range/numeric.hpp rather than in files named boost/range/algorithm/<algorithm-name>.hpp like every other algorithm? I think it's confusing for users who expect the uniform file naming convention that Boost.Range applies to other algorithms, to apply to these ones too.
I do find it a little surprising that there's boost/range/algorithm/*.hpp, but only boost/range/numeric.hpp.
I would be surprised to have a boost/range/algorithm/accumulate.hpp, but so long as numeric.hpp continues to exist, it's not such a bad thing.
Would you envision boost/range/algorithm.hpp pulling in the numeric algorithms? I don't think the minor coupling implied is too bad, I'm just curious.
I find the current numeric versus algorithm division as sensible as it is in the standard library -- and since I dealt with that for a long time before discovering boost.range, it didn't surprise me too much. Those coming at it a different way may feel differently, of course.
Ah, I didn't realize there was a similar distinction in the standard library. It surprises me a little, particularly for accumulate() which I view as a generic 'fold' operation, rather than something 'numeric'. But it makes sense that Boost.Range follows the conventions of the standard algorithms it wraps. Regards, Nate
participants (2)
-
Nathan Crookston
-
Nathan Ridge