3 ms·
> If we’re talking about an algorithm as a class, the state managed by the class is algorithm state, not the data the algorithm acts on. I was only talking abo
by fluffything 6y ago
> If we’re talking about an algorithm as a class, the state managed by the class is algorithm state, not the data the algorithm acts on.
I was only talking about algorithm state here. Check, for example, how the C++ string searching algorithms work to get a feeling of how these APIs work in the wild. For an example of this gone wrong, look no further than C++ stable_search, which does not let the user reuse the merge sort buffer across searches.
- jmull 6y agoHm, I guess this is moving in the direction of a debate on semantics and API design... which is independent of the original topic. I don’t know what stable_search is, but it would be a design decision if/how it supports different memory management options for buffers, and isn’t really affected by the decision to use a class or top-level function for implementation. Either way, buffer allocation could be hidden in the implementation and out of the user’s control or exposed to some degree and under the user’s control.