
Jeffrey Lee Hellrung, Jr.-2 wrote
On Mon, Nov 5, 2012 at 6:02 AM, Tobias Loew <
Tobias.Loew@
> wrote:
I used the "raw"-tag to quote the code. Here is it again without the tags:
... So, code like
boost::array<int,2> test; test[2] = 1; test[-1] = 1;
compiles without warnings or erros. Now, adding the following functions to array
template <size_type i> reference at() { BOOST_STATIC_ASSERT( (i < N) ); return elems[i]; }
template <size_type i> const_reference at() const { BOOST_STATIC_ASSERT( (i < N) ); return elems[i]; }
would make it possible to write
boost::array<int,2> test; test.at<2> = 1; test.at<-1> = 1;
which results in the expected error messages.
You can try to use boost::fusion::at_c <N> (test), but not sure if it actually has a static assertion. See
http://www.boost.org/doc/libs/1_51_0/libs/fusion/doc/html/fusion/sequence/in... http://www.boost.org/doc/libs/1_51_0/libs/fusion/doc/html/fusion/adapted/boo...
- Jeff
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
I tried it, but it doesn't static assert. Shouldn't it ? -- View this message in context: http://boost.2283326.n4.nabble.com/array-compile-time-checked-access-tp46381... Sent from the Boost - Dev mailing list archive at Nabble.com.