On Tuesday, 15 July 2014 at 18:30:11 UTC, Johannes Pfau wrote:
No, this doesn't work with Volatile!:
struct A
{
private int _val;
int read(){ return val+val };
int read(bool volatile)() { auto tmp = val; return tmp*tmp;
};
}
struct A
{
private int _val;
int read(bool volatile)()
{
static if (volatile)
{
auto tmp = val; return tmp*tmp;
}
else
{
return val+val;
}
};
}
And you are no worse off than before. This template can only
generate 2 possible functions, and the instantiations are also
cached so as far as I know, there's no code bloat.
opDispatch sounds _awesome_ for systems with a few KB of SRAM.
People here always have nice ideas but will you implement it
and tune it until it has as little overhead as the C version?
That's not something I'm currently interested in, but it's
something to look into if someone wants to use it in embedded
programming.