On Wednesday, 20 November 2013 at 22:49:42 UTC, Spott wrote:
I've been screwing around with templates lately, and I'm attempting to figure out why the following won't compile:struct value { int a; const auto opBinary(string op, T)(in T rhs) const pure { static if (op == "+")return intermediateValue!(value.plus,this,rhs)();}
const here is redundant, probably wanted const(auto) which isn't valid syntax. The function being const may already be returning a const type.
What is going on? Why is 'a' not allowed to "access" mutable data (even though it isn't modifying it)? How do I tell the compiler to pass "this" in a const fashion?
I'm not seeing an issue with the declarations. The function being declared as const is what make 'this' const. Probably should file as a bug if you don't get any confirmation soon. And reply with the bug entry.
