jq wrote:
dsimcha Wrote:

== Quote from Andrei Alexandrescu ([email protected])'s article

The idea is very simple: just use D's native append operation, but cache
the capacity to avoid too many lookups (I understand that that's the
bottleneck).
I paste the code below, I'd be indebted if you guys grabbed it and
tested it.
Andrei
struct ArrayAppender(T)
{
     size_t capacity() const { return _capacity; }
     void putNext(T item)

I have thoughts:

1) There should probably be a length/size call
2) How about add() or append() for a shorter name
3) What about using ~=?  Maybe this is too short...

Length sounds good. The other two I'm more hesitant about because ArrayAppender supports the interface of an output range. The output range only allows putting one element and making a step simultaneously, hence putNext. The ~= is also a bit of an unfortunate choice because it's odd to define a type with ~= but no meaningful/desirable binary ~.

Andrei

Reply via email to