On Tuesday, 5 January 2021 at 21:46:34 UTC, Ola Fosheim Grøstad wrote:
On Tuesday, 5 January 2021 at 21:43:09 UTC, welkam wrote:
Replace alias Bar(T) = Foo!T; with alias Bar = Foo;

struct Foo(T) {}

alias Bar = Foo;

void f(T)(Bar!T x) {}

void main() {
    auto foo = Bar!int();
    f(foo);
}

The example was a reduced case. One can trivially construct examples where that won't work.

It is very useful to create a simple alias from a complex type for export from a type library, then it breaks when people use that type library to write templated functions.

People do this all the time in C++.

I reread the whole thread. You want something like this except without mixins and to actually work.

struct Foo(T) {}

mixin template Bar(T) {
     Foo!T
}

void f(T)(Foo!T x) {}

void main() {
    f(mixin Bar!(int)());
}

In languages you can pass things by value, by reference or by name. Alias works by the name passing mechanic. You can not use alias or capture by name here because you cant get a name of something that doesn't exist yet.

What you want is parametric generation of definition and insertion in place. Now that's something Walter can understand.

              • ... 9il via Digitalmars-d-announce
              • ... aberba via Digitalmars-d-announce
              • ... jmh530 via Digitalmars-d-announce
              • ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... welkam via Digitalmars-d-announce
              • ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... welkam via Digitalmars-d-announce
              • ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... jmh530 via Digitalmars-d-announce
              • ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... 9il via Digitalmars-d-announce
  • Re: Printing shortest deci... James Blachly via Digitalmars-d-announce

Reply via email to