Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-02-02 09:33:36

Gennaro Prota <gennaro_prota_at_[hidden]> writes:

> On Sat, 31 Jan 2004 09:12:58 -0700, "Jonathan Turkanis"
> <technews_at_[hidden]> wrote:
>>Well, I can't really argue with that.
> Maybe that's up to me :) There are really cases where you want the
> compiler to count the elements for you (initialization with the [] =
> {...} syntax) and retrieve that number *later*.

Yep, this is the key use-case.

> PS: Of course I'm not saying one has to use a template for this; I
> guess most people would consider the sizeof/sizeof technique safe
> enough (chances that you use a pointer instead of an array are quite
> low). But, anyway... :)

There is still potential for problems:

  void f(int x[25])
    for (int i = 0; i < sizeof(x)/sizeof(*x); ++i) { ... }

Don't forget how often the code of experts is copy/pasted by novices

Dave Abrahams
Boost Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at