
JD wrote:
Function signature looks fine now, but if you want to be range-compliant, there are few issues in your implementation.
1. instead of std::size_t Arg1Size = Arg1End - Arg1It; use boost::range_size<Arg1>::type Arg1Size = size(Arg1);
Done.
2. I don't like the usage of plane C-Arrays. Even if you wanna use them, you should wrap the pointers to something like boost::scoped_array. Currently your code does not provide even the basic exeption quarantie (you will unconditionaly leak memory if an exception is thrown) and that's bad for this kind of algorithm.
Ok, I just move to std::vector. New version uploaded: http://minilien.com/?rrDciLH4g9
As far as I can tell, the code seems fine. Now the question is if we need any kind of review to add this to the boost. Unfortunately, I'm not the one that can give an aswer to this. Also I would consider the suggestions that were proposed by Phil Endecott. Big-O complexity difference seems quite significant.