Re: overloading a function taking a void[][]

2012-08-09 Thread Johannes Pfau
Am Wed, 08 Aug 2012 21:55:21 +0200 schrieb Timon Gehr timon.g...@gmx.ch: Well, I have done similar things in the past. The general concept should work. BTW: This is a working version, but it does cause template bloat: http://dpaste.dzfl.pl/d42a58aa Maybe this helps:

overloading a function taking a void[][]

2012-08-08 Thread Johannes Pfau
I wanted to add a new overload to digest for the std.hash module (see review in main newsgroup). This is the code written as two functions which should be combined in one overloaded function digestType!Hash digest(Hash)(scope const(void[])[] data...) if(isDigest!Hash) {

Re: overloading a function taking a void[][]

2012-08-08 Thread Timon Gehr
Try this: template digest(Hash) if(isDigest!Hash){ digestType!Hash digest(Range)(Range data) if(!is(Range:void[][]) isInputRange!Range __traits(compiles,digest!Hash(ElementType!(Range).init))){ //implementation detail } digestType!Hash digest()(scope

Re: overloading a function taking a void[][]

2012-08-08 Thread Johannes Pfau
Am Wed, 08 Aug 2012 18:53:05 +0200 schrieb Timon Gehr timon.g...@gmx.ch: Try this: template digest(Hash) if(isDigest!Hash){ digestType!Hash digest(Range)(Range data) if(!is(Range:void[][]) isInputRange!Range __traits(compiles,digest!Hash(ElementType!(Range).init))){

Re: overloading a function taking a void[][]

2012-08-08 Thread Timon Gehr
On 08/08/2012 09:11 PM, Johannes Pfau wrote: Am Wed, 08 Aug 2012 18:53:05 +0200 schrieb Timon Gehrtimon.g...@gmx.ch: Try this: template digest(Hash) if(isDigest!Hash){ digestType!Hash digest(Range)(Range data) if(!is(Range:void[][]) isInputRange!Range