Right, I have this:
template foo(T)
{
int opApply(int delegate(ref T) dg)
{
// code here
}
}
class bar(T)
{
mixin foo!(T) baz;
}
void main()
{
bar b = new bar();
foreach(qux; bar.baz)
{
}
}
And it does not compile. The error I get is "expression has no value", on
the line with the foreach. Do I need to do this in a different way, or is
it simply not possible (at the moment)?
--
Simen

Right, I have this:
template foo(T)
{
int opApply(int delegate(ref T) dg)
{
// code here
}
}
class bar(T)
{
mixin foo!(T) baz;
}
void main()
{
bar b = new bar();
foreach(qux; bar.baz)
{
}
}
And it does not compile. The error I get is "expression has no value", on
the line with the foreach. Do I need to do this in a different way, or is
it simply not possible (at the moment)?

According to the spec, Aggregate in foreach can be array, class,
struct or tuple. I don't know why template instances or mixins with
opApply were not included. Hopefully, when foreach is updated to work
with ranges, everything that looks like a range will be acceptable.

Right, I have this:
template foo(T)
{
int opApply(int delegate(ref T) dg)
{
// code here
}
}
class bar(T)
{
mixin foo!(T) baz;
}
void main()
{
bar b = new bar();
foreach(qux; bar.baz)
{
}
}
And it does not compile. The error I get is "expression has no value",
on the line with the foreach. Do I need to do this in a different way,
or is it simply not possible (at the moment)?