@dlangru

Страница 189 из 719
Maxim
08.06.2017
03:51:32
ну так semantic versioning 0.0.X для багфиксов, 0.X.0 для новых версий и X.0.0 для новых несовместимых версий, все логично)

Dmitry
08.06.2017
04:35:36
http://code.dlang.org/packages/drmi
Хинт: "реализация" по-английски это implementation. A realization это "осознание", вообще не о том. Когда ты что-то понял, осознал, это realized. А когда сделал, это implemented.

Denis
08.06.2017
05:00:09
нормальный рунглиш, понятный

Remote Method Invocation -> Remote Method Calling?

Google
Evil
08.06.2017
05:25:01
да

Denis
08.06.2017
05:28:25
Вроде-бы есть спрос на двунаправленную RPC-связь, типа как по сокету, но с разруливанием коллизий и прочего.

чтобы коннект был один (или не один, а какая-то одна абстракция)

Oleg
08.06.2017
07:57:11
Remote Method Invocation -> Remote Method Calling?
да, но вроде RMI устоявшийся термин https://ru.wikipedia.org/wiki/RMI

Denis
08.06.2017
08:05:38
Непонятная штука, не понял для чего оно

Типа, описываешь прототип функции и можно её запускать на сервере и ждать ответа?

Oleg
08.06.2017
08:09:24
Типа, описываешь прототип функции и можно её запускать на сервере и ждать ответа?
проектируешь как обычную систему, а потом просто подменяешь один из классов удалённым и работаешь по сети, например

при этом не меняешь код, потому что ты работаешь с интерфейсом

Denis
08.06.2017
08:10:23
И добавляется ещё один эксепшн, котрый надо отлавливать)

(связанный с сетью)

Oleg
08.06.2017
08:10:42
это мелочи

Александр
08.06.2017
08:26:50
ребят, как получить tuple параметров метода/функции?
только недавно решал такую проблему в плюсах)

Denis
08.06.2017
08:27:17
Ужс

Google
Александр
08.06.2017
08:27:34
могу подогнать решение на них же

Oleg
08.06.2017
08:33:22
могу подогнать решение на них же
ну только ради интереса

я бы взглянул, конечно)

Александр
08.06.2017
08:37:34
Если в упрощённом виде, то template <class R, class... Args> std::tuple<Args...> ExtractArgs(R (*)(Args...)); // функция template <class T, class R, class... Args> std::tuple<Args...> ExtractArgs(R (T::*)(Args...)); // метод template <class T, class R, class... Args> std::tuple<Args...> ExtractArgs(R (T::*)(Args...) const); // константный метод int foo(int, double) { /* ... */ } using FooArgsAsTuple = decltype(ExtractArgs(&foo)); // std::tuple<int, double>

Oleg
08.06.2017
08:40:52
не, я не про это говорил да D эквивалентный код будет таким, как я понимаю auto args = Parameters!foo.init

Александр
08.06.2017
08:41:37
так нужны типы аргументов или их значения?

Oleg
08.06.2017
08:41:46
мне нужно было сделать универсальный mixin, чтобы при вставке в тело метода/функции он мог получить значения аргументов

Александр
08.06.2017
08:42:15
если функция не variadic, то вряд ли вытащить

Oleg
08.06.2017
08:42:57
мне приходила мысль взять указатель на стрек, но я сразу от неё отказался

не кроссплатформенно, да и в целом жесть какая-то

в этой ситуации создание самих методов было под контролем, поэтому решил не заморачиваться

qwerty
08.06.2017
17:43:45
Dmd сообщает о неиспользуемом коде?

Dmitry
08.06.2017
17:43:59
да

Pavel
08.06.2017
17:44:09
Я наталкивался на такое что он даже скомпилировать не дает

Что кстати не очень удобно

Shorty(Ale Chapa) Manskiy
08.06.2017
17:44:42
Я давно уже не использовал D, но когда использовал, то он не сообщал. Не думаю что сейчас что-то изменилось.

qwerty
08.06.2017
17:45:49
Pavel
08.06.2017
17:46:01
Не, с обычным

Ну я там вводил dub build

Shorty(Ale Chapa) Manskiy
08.06.2017
17:46:53
Вы кажется что-то путаете...

Google
Shorty(Ale Chapa) Manskiy
08.06.2017
17:46:53
да

Я наталкивался на такое что он даже скомпилировать не дает

qwerty
08.06.2017
17:46:53
Странно, у меня не ругается (

Pavel
08.06.2017
17:47:18
Точно было, если в функции после return; написать какой-то код еще.

qwerty
08.06.2017
17:49:07
Да не, я имею ввиду неиспользуемую переменную или поле структуры

Ну кажется нашел https://issues.dlang.org/show_bug.cgi?id=17424

Shorty(Ale Chapa) Manskiy
08.06.2017
17:50:19
вроде нету там такого, DScanner в некоторых случаях может указать на такое.

qwerty
08.06.2017
17:50:21
Видно нету

Ну да, о нем и пишут как раз тоже

Dmitry
09.06.2017
10:20:04
Я помню в Фобосе была фишка какая-то чтобы по элементам шагать с определенным шагам никак ее найти не могу. Может кто помнит? типа каждый ворой элемент брать

Pavel
09.06.2017
10:35:11
что-то из ranges вроде

Dmitry
09.06.2017
10:35:22
нашел stride называется

а строку к чарам можно без dup кастануть?

Denis
09.06.2017
10:38:53
с целью?

Dmitry
09.06.2017
10:39:26
мне нужно по ней map! сделать

Denis
09.06.2017
10:39:54
строка это массив же

иммутабельный

Dmitry
09.06.2017
10:40:42
а как можно по ней map сделать? чтобы элементы поменять?

qwerty
09.06.2017
10:40:42
auto arr = [0,1,2,3]; writeln(arr.length.iota.filter!((index) => index % 2 == 0).map!((index) => arr[index])); не то случайно о_О ?

Google
Dmitry
09.06.2017
10:41:03
м...

qwerty
09.06.2017
10:41:30
или прям совсем была готовая функция для получения четных элементов?

Dmitry
09.06.2017
10:41:42
stide позволяет шаг указывать

мне просто нужно каждый второй элемент поменять

qwerty
09.06.2017
10:41:51
аа

сори

пропустил

Dmitry
09.06.2017
11:24:06
auto x = str.map!(a=> a.replace(a, 't')); чnо не так делаю? Error: template std.array.replace cannot deduce function from argument types !()(dchar, dchar, string), candidates are:

Shorty(Ale Chapa) Manskiy
09.06.2017
11:26:40
что это такое a => a.replace(a, 't') ?

Dmitry
09.06.2017
11:27:12
пытаюсь через map! символы заменить

Admin
ERROR: S client not available

Shorty(Ale Chapa) Manskiy
09.06.2017
11:28:18
map!"'t'"

что ты вообще хочеш там сделать?

Dmitry
09.06.2017
11:30:58
каждый символ на букву t поменять

Shorty(Ale Chapa) Manskiy
09.06.2017
11:31:44
в строке str?

Dmitry
09.06.2017
11:32:07
да

Shorty(Ale Chapa) Manskiy
09.06.2017
11:32:35
str[] = 't'

но ты должен учитывать что размер у букв может быть разным...

Dmitry
09.06.2017
11:33:39
Вот такой вариант сработал: auto x = str.map!(a=> a='b');

Shorty(Ale Chapa) Manskiy
09.06.2017
11:33:54
строка не изменилась.

Google
Dmitry
09.06.2017
11:34:09
ну пусть хоть в копии будет

а хотя не в копии не устроит

Shorty(Ale Chapa) Manskiy
09.06.2017
11:34:26
какой еще копии?

Dmitry
09.06.2017
11:34:28
я могу по ссылке менять?

ну оригинальную строку я могу менять?

Shorty(Ale Chapa) Manskiy
09.06.2017
11:34:59
только если она не immutable

str[] = 't'

Dmitry
09.06.2017
11:36:11
string str = "xxxxx"; auto x = str.stride(2).map!(a=> a='b'); writeln("x: ", x); теперь в x у меня замененный каждый второй символ, но мне бы каждый первый заменить на a а каждый второй на b

Shorty(Ale Chapa) Manskiy
09.06.2017
11:39:59
x это range, а не строка... и я незнаю что делает stride, но не думаю что это то что тебе нужно. а возможности (желания) проверить у меня сейчас нету. Но str в любом случае не изменилась.

Oleg
09.06.2017
11:41:12
Нужно просто понять, что строки не нужно менять)

Maxim
09.06.2017
11:47:50
ну либо кастовать их в набор байтов, если очень хочется)

ну или чаров нужного типоразмера)

qwerty
09.06.2017
12:00:37
char[] str = "xxxxx".to!(char[]); auto indexes = str.length.iota.stride(2); indexes.each!(a => str[a] = 'b');

Dmitry
09.06.2017
12:04:44
спасибо

qwerty
09.06.2017
12:10:41
?

Shorty(Ale Chapa) Manskiy
09.06.2017
15:58:58
char[] str = "xxxxx".to!(char[]); auto indexes = str.length.iota.stride(2); indexes.each!(a => str[a] = 'b');
Долго я ждал пока кто-нибудь напишет, но всем всеравно... Что-то этот код неочень, уж лучше просто циклом пройти и сразу поменять. Т.е. не делать лишнего.

Pavel
09.06.2017
15:59:38
Чем не очень и чем лучше?

Shorty(Ale Chapa) Manskiy
09.06.2017
16:00:02
ну посмотри получше.

qwerty
09.06.2017
16:00:14
видно происходит копирование char[] str = "xxxxx".to!(char[]);

Да и массив с индексами надо создать

Pavel
09.06.2017
16:01:31
Ну это из серии каких-то микрооптимизаций в стиле си. Тут без надобности можно не делать.

qwerty
09.06.2017
16:02:04
да нет на самом деле, но я написал такое решение потому что очевидно вариант с циклом чем-то не подходил

Shorty(Ale Chapa) Manskiy
09.06.2017
16:02:20

Страница 189 из 719