In this case I actually think #pike is a reasonable excuse. It's not _that_ big a deal to put a couple into your old code:
To me, #pike is for emergency use only. If possible, I write programs that are compatible with any pike (at least upwards). "You can solve that with grepping and inserting #pike" is never ever a good argument, in my opinion.
I think conveniency argument is a more compelling one: If you got a _sizeof in your class you don't have to deal with pesky from-the-end flags at all.
Yes.
Another thing is that `[] wouldn't really be the convenience alternative in the future either: One would expect sizeof magic in the single argument case too, and that isn't compatible. Consider old style code calling a new style conveniency `[] that tries to operate on that principle.
*thinks* Explain.