Boost logo

Boost :

From: Jason Shirk (jasonsh_at_[hidden])
Date: 2002-02-17 02:22:51

I'm not sure it's possible, but a nice addition to Boost would be the
ability to determine if an expression is a constant integer or not.
Everything I've thought of would cause an error if the expression were
not a constant.

I can imagine a couple of uses for this, but the immediate need is to
not allow the following to compile:

        char buf[256];
        strncpy(buf, "this will overrun", 512); // oops, 512 >

Here, the compiler can deduce the array bounds. If the count expression
is constant, then it's simple to cause a compile time error. If it's
not, then no error should happen.

Of course tools such as the compiler can be taught to catch this, but a
pure language implementation would be really cool.

Jason Shirk
VC++ Compiler Team

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