Template Parameters in Struct Member Functions
Mike Parker via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Aug 22 10:08:34 PDT 2015
On Saturday, 22 August 2015 at 16:49:26 UTC, DarthCthulhu wrote:
> I'm having difficulty understanding how templates operate as
> function parameters.
>
> Say I have this:
>
> struct ArrayTest {
>
> void arrayTest(T) (T arrayT) {
>
> writeln(arrayT);
> }
> }
>
> unittest {
>
> ArrayTest test;
>
> float farray[] = [
> 0.5f, 0.5f, 0.0f,
> 0.5f, -0.5f, 0.0f,
> -0.5f, -0.5f, 0.0f,
> -0.5f, 0.5f, 0.0f
> ];
>
> test.arrayTest(farray);
>
> }
>
> Everything works peachy as expected. But as soon as I add
> another parameter to the arrayTest function like so (and
> changing the unit test to match):
>
> void arrayTest(T, int passing) (T arrayT) { ... }
>
> I get 'cannot deduce function from argument types' errors.
>
> Specifically stating the type of the function doesn't seem to
> help:
>
> test.arrayTest(float [])(farray, 1);
test.arrayTest!(float, 1)(farray);
More information about the Digitalmars-d-learn
mailing list