[Issue 4174] Template interface functions not allowed, making operator overloads difficult
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon May 10 14:41:26 PDT 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4174
Steven Schveighoffer <schveiguy at yahoo.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Template interface |Template interface
|functions not allowed |functions not allowed,
| |making operator overloads
| |difficult
--- Comment #1 from Steven Schveighoffer <schveiguy at yahoo.com> 2010-05-10 14:41:26 PDT ---
Sorry, enter key added the issue when I was typing the summary.
Operator overloads require template functions, yet this doesn't work:
interface I
{
I addAssign(I other);
I opOpAssign(string op)(I other) if (op == "+=")
{
return this.addAssign(other);
}
}
void foo(I i)
{
i += i;
}
error message:
testinterface.d(4): Error: function
testinterface.I.opOpAssign!("+=").opOpAssign template member functions are not
allowed in interface I
testinterface.d(12): Error: template instance testinterface.I.opOpAssign!("+=")
error instantiating
How shall I implement operators for interfaces?
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list