Size: a a a

2020 December 27

EP

Egor Pugin in dlang.ru
да, спасибо
источник

OB

Oleg B in dlang.ru
gui
alias id = a => a работает
но это не лямбда же, а как бы её объявление
источник

OB

Oleg B in dlang.ru
т.е. в точке использования будет инстанцироваться
источник

EP

Egor Pugin in dlang.ru
Oleg B
т.е. в точке использования будет инстанцироваться
это и нужно
источник

DH

Dark Hole in dlang.ru
Вот я решил тут почитать доку
источник

DH

Dark Hole in dlang.ru
Охуел))
источник

DH

Dark Hole in dlang.ru
class Foo
{
   int x;
   string s;

   this(int x, string s)
   {
       this.x = x;
       this.s = s;
   }
}

void test(int x, Foo f ...);

...

Foo g = new Foo(3, "abc");
test(1, g);         // ok, since g is an instance of Foo
test(1, 4, "def");  // ok
test(1, 5);         // error, no matching constructor for Foo
источник

DH

Dark Hole in dlang.ru
Не знаю зачем так можно сделать, но выглядит прикольно
источник

TU

Telegram User in dlang.ru
Неявный конструктор. Ммм
источник

g

gui in dlang.ru
Oleg B
но это не лямбда же, а как бы её объявление
тогда auto id(T) = (T a) => a;, только надо будет везде передавать тип
источник

OB

Oleg B in dlang.ru
Dark Hole
class Foo
{
   int x;
   string s;

   this(int x, string s)
   {
       this.x = x;
       this.s = s;
   }
}

void test(int x, Foo f ...);

...

Foo g = new Foo(3, "abc");
test(1, g);         // ok, since g is an instance of Foo
test(1, 4, "def");  // ok
test(1, 5);         // error, no matching constructor for Foo
это на D? вообще не должно быть неявных конструкторов
источник

DH

Dark Hole in dlang.ru
Oleg B
это на D? вообще не должно быть неявных конструкторов
Лучше! Это из документации по D
источник

DH

Dark Hole in dlang.ru
Oleg B
это на D? вообще не должно быть неявных конструкторов
источник

g

gui in dlang.ru
Dark Hole
class Foo
{
   int x;
   string s;

   this(int x, string s)
   {
       this.x = x;
       this.s = s;
   }
}

void test(int x, Foo f ...);

...

Foo g = new Foo(3, "abc");
test(1, g);         // ok, since g is an instance of Foo
test(1, 4, "def");  // ok
test(1, 5);         // error, no matching constructor for Foo
а еcли test(1, g, 4, "def");?
источник

DH

Dark Hole in dlang.ru
gui
а еcли test(1, g, 4, "def");?
Скорее всего не сработает
источник

EP

Egor Pugin in dlang.ru
gui
тогда auto id(T) = (T a) => a;, только надо будет везде передавать тип
это я тут с С++ просто сравниваю
https://godbolt.org/z/1T4jGd
источник

DH

Dark Hole in dlang.ru
Egor Pugin
это я тут с С++ просто сравниваю
https://godbolt.org/z/1T4jGd
Мне чот непонятно, по какому принципу код на С++ работает
источник

DH

Dark Hole in dlang.ru
А D очевидно, конечно
источник

EP

Egor Pugin in dlang.ru
Dark Hole
Мне чот непонятно, по какому принципу код на С++ работает
id - лямбда, принимает значение, возвращает его
источник

DH

Dark Hole in dlang.ru
Egor Pugin
id - лямбда, принимает значение, возвращает его
Она же не шаблонная
источник