digitalmars.D - Which template is recommended.
- sclytrack (38/38) May 27 2012 Below there are two routines with the same name.
- =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= (6/43) May 27 2012 --
Below there are two routines with the same name. Apparently both can be present at the same time. Which one of the two is the recommended code? import std.stdio; interface ITest { int first(); int second(); } class Test: ITest { int first() { writeln("first"); return 1; } int second() { writeln("second"); return 2; } } void routine(T:ITest) (T a) { a.second(); } void routine(T) (T a) if (is(T:ITest)) { a.first(); } int main() { routine(new Test()); return 0; } ----------------------- The above example prints out first.
May 27 2012
On 27-05-2012 11:43, sclytrack wrote:Below there are two routines with the same name. Apparently both can be present at the same time. Which one of the two is the recommended code? import std.stdio; interface ITest { int first(); int second(); } class Test: ITest { int first() { writeln("first"); return 1; } int second() { writeln("second"); return 2; } } void routine(T:ITest) (T a) { a.second(); }I would use this. It is much clearer.void routine(T) (T a) if (is(T:ITest)) { a.first(); } int main() { routine(new Test()); return 0; } ----------------------- The above example prints out first.-- Alex Rønne Petersen alex lycus.org http://lycus.org
May 27 2012