On Wed, 07 Dec 2011 23:27:41 -0500, Jay Norwood <j...@prismnet.com> wrote:

I've been reading about the use of expression templates in this blitz page, 
which provides arrays implemented by c++ templates.  They have some convenient 
features, such as array initialization with auto-incrementing array index 
values in the expressions and applying a cast operator to an entire array 
within an expression.   Do  D built-in array operations and initialization 
include these type of features, or would you need to create some similar D 
template implementation to guarantee the efficient expression evaluation and 
similar initialization features?

http://www.oonumerics.org/blitz/docs/blitz_3.html#SEC80


Built-in? No, not everything. But std.range, std.array and std.algorithm have a 
lot of the convenience features you're looking for. Actual D array operations, 
i.e. x[] = y[] + z[] * b;, are more efficient than expression templates. 
Currently, what you can do in an array op is somewhat limited, but 
generalization, i.e. x[] = sin(iota(0,x.length)[]) + y[] is on Don's todo list.

Reply via email to