@dlangru

Страница 36 из 719
qwe
11.07.2016
12:36:11
точно? Если стабильнее Rust, то очень круто. Потому что после 1.0, насколько я понял, они еще не нарушали ее

Eto
11.07.2016
13:03:33
Сейчас постоянно оставляют обратную совместимость через compiler switch.

qwe
11.07.2016
13:03:49
compiler switch?

Eto
11.07.2016
13:06:34
http://dlang.org/changelog/2.071.0.html#dip22

Google
Dmitry
11.07.2016
13:10:19
в моих пусть и небольших проектах что-то серьезное вообще не ломалось. Максимум деприкейшен месседж получал.

qwe
12.07.2016
17:29:42
Кто-нибудь делал массив указателей?

Нужно перебирать поля в цикле

и присвивать им значения

Eto
12.07.2016
17:38:08
Неа. А в чём сложность?

qwe
12.07.2016
17:42:01
я получаю такую ошибку Error: cannot modify immutable expression *cast(immutable(char)*)vals[0]

при том, что char в классе нет)

ой

стоп

я прошу прощения, в переменных запутался

все нормально

Eto
12.07.2016
17:44:45
:)

qwe
12.07.2016
17:45:59
Еще вопрос нормально указывать, что импортируешь из файла (import std.path : chainPath;) или лучше делать (import std.path;) ?

Google
qwe
12.07.2016
17:46:14
из модуля то есть, а не из файла

Oleg
12.07.2016
17:51:10
лучше импортировать только то что нужно по сути

но это если тебе мало нужно

иначе как-то выглядит громоздко

qwe
12.07.2016
17:51:44
Зато другой программист сразу поймет, что откуда берется

Eto
12.07.2016
17:57:39
В функциях всегда лучше использовать выборочный импорт.

qwe
12.07.2016
17:57:59
в теле функции? Это нормально?

Eto
12.07.2016
17:59:00
Да, если какая-то мелочь нужна только для этой функции.

Или, если это тесты.

qwe
12.07.2016
18:00:28
еще вопрос. Строку без idub можно передать как-то? Мне копировать совсем не хочется. А в методе, куда хочу передать надо split сделать

Eto
12.07.2016
18:01:00
Строку — это char[]?

qwe
12.07.2016
18:03:01
да, вроде string

сейчас проверю

Eto
12.07.2016
18:04:46
Тогда какие проблемы? string это immutable(char)[]. Т.е. содержимое меняться не может. Да и split ничего не должен с содержимым делать.

qwe
12.07.2016
18:05:02
момент

так, там оказывается был char[], прошу прощения

кстати тип можно вывести как-нибудь?

или через gdb только можно узнать?

через ptype имел ввиду

в gdb

Google
Eto
12.07.2016
18:38:01
pragma(msg, typeof(...))

qwe
13.07.2016
14:17:59
Добрый день! Никто не подскажет в C++ так можно было делать http://vpaste.net/V6tep ? Тут получается, что можно вернуть любого типа значение, если метод шаблонный. Это нормальная практика? Я смотрю, что такое и в std используется, и с подобным как раз не справляется синтаксический анализатор.

Oleg
13.07.2016
14:19:09
что-то сомневаюсь, что в С++ так можно делать было

ну может быть можно конкретно этот пример

всё приводится к double и всё

char как число тоже записывается в double

если во время компиляции вычисление, то это делается как-то так auto func(int N)( int some_arg) { static if( N == 1 ) return 'c'; else static if( N == 2 ) return some_arg * 2; else return 3.14; }

тогда в зависимости от инстанцирующего параметра N будут разные типы возвращаться

но так как что D, что С++ компилируемые языки у функций должен быть определённый возвращаемый тип

Денис
13.07.2016
14:22:28
char как число тоже записывается в double
Чет сомневаюсь, что компилятор такое съест

Oleg
13.07.2016
14:22:49
в С++ может и съест

qwe
13.07.2016
14:23:30
Чет сомневаюсь, что компилятор такое съест
тот код, что по ссылке скомпилировался и запустился. Или Вы о другом?

qwe
13.07.2016
14:24:10
понял

qwe
13.07.2016
14:26:03
да, иначе бы не стал спрашивать

Oleg
13.07.2016
14:27:10
у func всегда тип double

вне зависимости от типа T и вне зависимости от аргумента par

это общий тип для всех 3х возвращаемых значений

если ты вместо 'c' напишешь "c" то всё пойдёт прахом

Google
qwe
13.07.2016
14:29:14
сработало(

Oleg
13.07.2016
14:29:26
сработало что?

qwe
13.07.2016
14:30:12
'c' заменить "c"

Oleg
13.07.2016
14:31:39
auto func(T)(int par) { switch(par) { case 0: return "c"; case 1: return 0; default: return 1.0; } } void main() { import std.stdio; writeln( func!string(0) ); } rdmd ololo.d ololo.d(7): Error: ololo.d(7): Error: mismatched function return type inference of int and string ololo.d(16): Error: template instance ololo.func!string error instantiating mismatched function return type inference of int and string ololo.d(16): Error: template instance ololo.func!string error instantiating Failed: ["dmd", "-v", "-o-", "ololo.d", Failed: ["dmd", "-v", "-o-", "ololo.d", "-I."] "-I."]

qwe
13.07.2016
14:32:18
хм

Oleg
13.07.2016
14:32:32
а ты её вызывал или просто скомпилил?

если просто скомпилил, без вызова в коде, то она просто не инстанцировалась

Eto
13.07.2016
14:38:16
auto func(T)() — шаблон func!(int) — функция

Admin
ERROR: S client not available

qwe
13.07.2016
14:39:52
прошу прощения, отвлекся

стыдно сказать, но я делаю через dub run

да, разумеется вызываю

сейчас все лишнее уберу и покажу

Eto
13.07.2016
14:41:07
А чего в этом стыдного?

Да, и сообщения можно редактировать. Незачем использовать устаревший мета-синтаксис со звёздочками.

qwe
13.07.2016
14:42:53
стыдно то, что не знаю с какими фалагами компилируется проект

про удаление не знал)

telegram только из-за этой группы начал использовать

Eto
13.07.2016
14:43:59
:)

qwe
13.07.2016
14:44:58
О! не скомпилировалось

Google
qwe
13.07.2016
14:45:05
Олег прав

а map возвращает не массив?

int[] vals = map!(x => to!int(x))(split(strip(line), " ")) ошибку дает

говорит что map возвращает MapResult

Макс
13.07.2016
17:45:38
Да, там какой-то свой range-based результат вроде, но у него есть то ли toArray(), то ли какой-то такой метод, если надо. (Хотя если нужен, допустим, просто foreach, то можно с этим MapResult и работать ведь.)

qwe
13.07.2016
17:46:12
да, нагуглил что-то http://forum.dlang.org/post/sereqjessazkulwckrpc@forum.dlang.org

After all, the .length function returns an int, and we have an array of them, so map returns an int, right? Wrong!

у меня точно такие же мысли были)

хм, говорит, что нет такого свойства

аа, понял, это тоже метод

из std.range

Макс
13.07.2016
17:55:13
https://dlang.org/phobos/std_array.html#array Allocates an array and initializes it with copies of the elements of range r.

Подойдёт?)

qwe
13.07.2016
17:56:24
)

тоже подходит

Макс
14.07.2016
09:40:07
Подскажите, что заюзать для интернационализации? Есть какие-то хорошие библиотеки, какие-то форматы файлов переводов? Никогда раньше этим делом не занимался. Самый сложный вопрос, кажется, в том, как хранить переводы конструкций, где форма зависит от числа («1 юзер»/«2 юзера»/«5 юзеров»), для остального я бы и сам на INI всё придумал, а тут непонятно что делать.

Википедия говорит, что в gettext() для этого пихают сишный код прямо в файлы переводов и затем компилируют. Я бы сказал, что это... эмм... так себе подход.

Oleg
14.07.2016
09:45:03
тоже задавался этим вопросом, большинство либ зарубежными разработчиками написаны, поэтому они не полностью удовлетворяют потребности русских разработчиков

я не нашёл ничего стоящего

Mike
14.07.2016
09:45:34
написать самому

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