
Dark
12.10.2018
11:15:40

Igor
12.10.2018
11:15:53
S() не шаблон
точнее не выглядит как инстанцирование

Ievgenii
12.10.2018
11:16:16
Да, так пашет

Google

Ievgenii
12.10.2018
11:16:22
Но не красиво выглядит :(

Igor
12.10.2018
11:16:31
сделай алиас

Ievgenii
12.10.2018
11:16:35
Но работает)

Igor
12.10.2018
11:16:38
будет красиво )
хм
https://run.dlang.io/is/b12Nos

Ievgenii
12.10.2018
11:20:03
Спасибо!

Igor
12.10.2018
13:16:58
блин, чего только люди не выдумают… куча REPL для разных языков в вебе… https://repl.it/repls/InfiniteFlimsyDemands

Ievgenii
12.10.2018
13:42:32
Кто-то знает, как сделать так, чтобы работал автокастинг структуры?

Oleg
12.10.2018
13:42:53

Ievgenii
12.10.2018
13:43:18
У меня есть структура, в ней описан метод opCast и когда я передаю эту структуру в функцию, что ждет int, этот метод сам вызывался
+ он должен быть заведомо известным

Google

Ievgenii
12.10.2018
13:44:06
Я хочу вызывался метод кастинга, но сам
Такой пример работает:

Maxim
12.10.2018
13:45:34
В D с автокастингом проблемы by design

Ievgenii
12.10.2018
13:45:34
void main(string[] args){
short h = 5;
g1(h);
g2(h);
}
void g1(int i){
writeln(i);
}
void g2(long i){
writeln(i);
}
А вот со структурами - печаль(((

qwerty
12.10.2018
13:57:37

Ievgenii
12.10.2018
14:12:12

Igor
12.10.2018
14:25:29
ну writeln вроде просто использует в таком случае toString или если его нет то там другие механизмы. это не похоже на автокастинг

Ievgenii
12.10.2018
14:37:01
Тут не в этом дело
Я о том, что short к int и long без проблем приводится

Igor
12.10.2018
14:37:49
а

Ievgenii
12.10.2018
14:37:52
Кто-то пробовал когда-то что-то типа "сохранить тип" переменной?
Аля:
auto a = new A();
auto typeOfA = typeOfA(a);
void* v = cast(void*)a;
auto a1 = cast(typeOfA*)v;
Иными словами, нужно как-то сохранить тип переменной для дальнейшего его восстановления из void*
К которому она (переменная) приводится
Была у кого-то такая тупая задача?)

Igor
12.10.2018
14:43:54
сохранить typeid(variable) в какой-то переменной можно, но как потом этоиспользовать не знаю

Ievgenii
12.10.2018
14:45:54
Вот и я...

Google

Igor
12.10.2018
14:48:31
наверное можно используя typeinfo найти конструктор и вызвать его с нужным аргументом

Ievgenii
12.10.2018
14:49:14
Так мне не нужно создать новый объект
Он уже есть
Мне его нужно закастить к нужному типу

Pavel
12.10.2018
14:57:40
Имхо кастование типов это compile-time операция. Тебе придется заранее ограничить множество возможных типов для каста и потом сделать что-то вроде
switch(typeOfA) {
case "MyClass1": auto a1 = cast(MyClass1)v; break;
case "MyClass2": auto a1 = cast(MyClass2)v; break;
default: auto a1 = cast(MyClass3)v; break;
}

Ievgenii
12.10.2018
15:02:35
Такое у меня не катит :(

Valeriy
12.10.2018
15:32:29
operator Type() в С++ позволяет делать крутые вещи с перегрузкой по возвращаемому значению. Позволяет всякие DSL писать. А в D это косяк дизайна, когда можно только для олного типа
lighttp всё таки сырая штука.
Не закрывает сокеты за собой, маршрутизация которая в примере работает глючно.
Но для начала не плохо. Держит 15000 req/sec и достаточно просто с ним работать.
И память не утекает

Dmitry
13.10.2018
21:47:49
Если тип известен во время компиляции, то элементарно. typeof(x) дает нам тип, его сохранить можно в alias и передавать в шаблоны. Там к нему можно кастить.

Ievgenii
13.10.2018
22:34:34

Dmitry
14.10.2018
10:03:07
Тогда typeid => TypeInfo => object.factory должны помочь. Рекомендую на реализацию std.variant глянуть.

Igor
14.10.2018
13:34:45
тут бы помог пример кода который хотелось бы выполнить

Ievgenii
14.10.2018
15:47:10

Igor
14.10.2018
16:20:24
“ты приходишь в рантайме что-бы закастить переменную к заранее неизвестному типу, но делаешь это без должного уважения”
https://www.film.ru/sites/default/files/images/1368272806_14.jpg
это мем из крестного отца

Google

Dmitry
14.10.2018
17:17:50

Igor
14.10.2018
17:18:04
о, точно, это оно )

Oleg
14.10.2018
21:10:46
Вот такая тема
http://worldsim3d.com/Forum/index.php?topic=344
кто-нибудь пробовал?

Dmitry
15.10.2018
13:34:44
В продолжении темы про альт. Мы все же засетамипили Джангу. Но Альт это блин что-то. Вот пример:
Спрашивается что делали все эти мантейнеры и тд если у них блин форма выглядит как черт знает что

Ackeard
15.10.2018
13:36:05
на Centos6 такая же фигня
мэйнтейнеры пакетики на диск укладывают
это проблема старого гнома вроде

Dmitry
15.10.2018
13:51:40
Странный абор софта для серврого диструбутива:

Ackeard
15.10.2018
13:53:57
на МСВС в хоуме можно найти файл настроек емакса .emacs НО на нём нет самого емакса
ЛОЛ

Pavel
15.10.2018
13:54:32
Кек, а вот скажите, есть ли теоретическая возможность, что операции с памятью, выделенной с помощью new, будут медленнее чем с памятью, выделенной с помощью malloc ?
Фрагментация что ли?

Ackeard
15.10.2018
13:55:37
сор не правильно прочитал вопрос
хз
вроде разница только в том что new кидает исключение
ну если не может выделить память

Google

Ackeard
15.10.2018
13:56:24
маллок просто NULL возвращает

Dark
15.10.2018
13:57:00
Кек, а вот скажите, есть ли теоретическая возможность, что операции с памятью, выделенной с помощью new, будут медленнее чем с памятью, выделенной с помощью malloc ?
Теоретически, конечно, возможно, если память каким то другим способов выделяют, неэффективнее маллока

Stanislav
15.10.2018
14:09:58
а никто с yaml на ди не работал случаем?
выбираю либу )
https://github.com/dlang-community/D-YAML

Igor
15.10.2018
14:46:19

Pavel
15.10.2018
14:47:05
чтение/запись

Igor
15.10.2018
14:48:00
думаю очень маловероятно - это всё обычная память (во всяком случае на интеловских платформах)
если не ошибаюсь разница может быть по чтению/записи для статических переменных, т.к. там доступ через tls

Глеб
15.10.2018
15:02:51

Ackeard
15.10.2018
15:12:20
это графонистый менеджер ssh ключей

Dmitry
15.10.2018
15:20:15

Denis
15.10.2018
15:37:15

Dmitry
15.10.2018
15:50:10
Из приколов Питона или почему толтые бинарики рулят. Пакет есть, но Питон его не видит:

Pavel
15.10.2018
15:50:34
Да не рулят толстые бинарники
Ты что забыл как ты не мог скомпилировать vibed потому что не было пакета ssl? =)