
Макс
16.07.2016
09:15:20
как в этом примере
для трёх случаев – три разные формы котёнков. различие делается по числу
регуляркой
вместо этого

Google

Макс
16.07.2016
09:16:08
у меня вот самодельный хардкод был такой
string russianGenitive(T)(T n, in string one, in string two, in string five=null) if (isIntegral!T) {
if (5 <= n && n <= 20)
return five ? five : two;
else {
n = n % 10;
if (n == 1)
return one;
else if (n == 2 || n == 3 || n == 4)
return two;
else
return five ? five : two;
}
}

Pavel
16.07.2016
09:17:46
Я правил всех языков не знаю, так что не могу сказать )
Посмотри в гугле для топ 10 языков правила множественного числа

Oleg
16.07.2016
09:29:08

Макс
16.07.2016
09:32:35
не знаю. если ошибся, то тем лучше, что уберу это из кода)))

Oleg
16.07.2016
09:50:22
Ох, да я сам наверное ошибся
Словоформы с числительными такие интересные только в именительном падеже
В остальных кажется все проще
Либо ед.ч., либо мн.ч.
При этом без числительных тоже всё просто
В именительном

Dmitry
16.07.2016
13:44:56
Вопрос на засыпку. А в делфи сборщик мусора есть?
Погуглил. Кажись нет

Google

Pavel
16.07.2016
13:51:57
http://stackoverflow.com/questions/4440841/garbage-collection-in-delphi ты прав
Вручную надо аллоцировать и освобождать память.

Вячеслав
17.07.2016
15:31:30
Без троянов, просто средствами веб, можно стырить чужие куки?

Макс
17.07.2016
15:36:02
По идее нет, браузеры за этим следят. Разве что на сайте-жертве найдётся страница, аналогичная phpinfo(), только с куками. Да и то непонятно как оттуда данные считать.
может, есть трюки, аналогичные трюку с анализом посещений чужих сайтов через скорость загрузки внешних <img/>, но мне в голову не приходит

Pavel
17.07.2016
15:39:00
Конечно можно, есть же всякие XSS/CSRF трюки и прочее

0x9d8e
18.07.2016
11:01:43
Конечно может быть сложновато ничего нигде не упустить (хотя за этим фреймворки следят), но принципиальной проблемы какбы нет.

Dmitry
22.07.2016
07:15:28
я всегда думал, что то что в скобках это значения которые метод принмает. Но тут наткнулся на такое:
BOOL WINAPI GetFileSizeEx(
_In_ HANDLE hFile,
_Out_ PLARGE_INTEGER lpFileSize
);
in - надо понимать входные данные, out выходные
как такое получается? В Ди такое возможно?

Макс
22.07.2016
07:24:35
А что это за _In_ и _Out_? Они где-то выше алиасами объявлены? Или это такие типы объявлены?

Alex
22.07.2016
07:31:02
мб там надо указатель на переменную
где аут

Макс
22.07.2016
07:31:55
Я вот и предполагаю, что этот тип объявлен как класс, а классы, как известно, передаются по ссылке.

Dmitry
22.07.2016
08:07:38
это в доке на сайте MS написано
https://msdn.microsoft.com/ru-ru/library/aa364957(v=vs.85).aspx
классы в С++ по ссылке же только. В D они вроде бы не ссылочные или наоборот?

Макс
22.07.2016
08:10:46
Классы по ссылке, структуры по значению. Это в D.

Dmitry
22.07.2016
08:13:03
в данном случае получается функция принимает указатель на данные?

Oleg
22.07.2016
08:13:27
это так просто не узнать из той сигнатуры, что ты скинул

Google

Oleg
22.07.2016
08:14:09
нужно смотреть как объявлены HANDLE и PLARGE_INTEGER
но скорее всего это указатели
мне кажется _In_ и _Out_ это просто для документации
чтобы было понятно что значение в _Out_ будет записываться

Dmitry
22.07.2016
08:16:10
ок понял
я правильно понимаю что в Ди недавно появились контейнеры? так? раньше типа не было?

Макс
22.07.2016
08:18:03
какие контейнеры?

Oleg
22.07.2016
08:21:06
да, какие контейнеры?

Dmitry
22.07.2016
08:21:51
https://dlang.org/phobos/std_container.html
в чем суть контейнеров кстати? обертки над типами данных?

Макс
22.07.2016
08:26:05

Dmitry
22.07.2016
08:26:35
а в чем их суть?

Макс
22.07.2016
08:29:45
Написано же вроде, Containers do not form a class hierarchy, instead they implement a common set of primitives. Просто функции для работы с массивами, я так понимаю.

Dmitry
22.07.2016
08:32:38
обертка высокоуровневая?

Oleg
22.07.2016
08:40:01
не совсем понятен вопрос... мне, по крайней мере
возьмём например https://dlang.org/phobos/std_container_rbtree.html
если был бы низкоуровневый интерфейс работы с деревом (руками балансировка, поворот и тд), то не было бы смысла в этой структуре как таковой
но с другой стороны все операции стандартные (вставка, удаление, поиск)
просто не совсем понятно, что значит "низкоуровневая обёртка" для алгоритма или структуры данных

Dmitry
22.07.2016
08:47:11
над данными для упрощения манипуляции с ними

Google

Oleg
22.07.2016
08:47:35
ну это низкоуровневый или высокоуровневый?
я понимаю что такое высокоуровневый интерфейс работы с джостиком, например
высокий уровень скрывает детали
но и там помимо деталей есть различие в реализации различного оборудования
что тоже скрывается высоким уровнем
а здесь просто реализована структура данных с алгоритмами работы над ней
если мы чуть спустимся, на один уровень, то мы просто получим "недоделанный" rbtree, например

Admin
ERROR: S client not available

Oleg
22.07.2016
08:49:47
да и какая разница?))))
вопрос из серии "а шины вы мне малиновым воздухом накачали?"
если ты получишь ответ "низкоуровневый", то какое решение ты на основе этой информации можешь принять?
с другой стороны эти контейнеры достаточно низкоуровневые, потому что это конкретные реализации алгоритмов и данных
если бы ты где-то встретил просто Storage какой-нибудь и от тебя было бы скрыто на основе какого типа данных он сделан, то это был бы высокий уровень

Dmitry
22.07.2016
08:52:58
так, я тогда суть контейнеров не могу понять для себя
в чем их фишка и где они нужны если простыми словами

Oleg
22.07.2016
09:06:53
ну блин
контейнер это коробка
в коробке ты что-то хранишь
просто эти коробки ещё сами что-то делать умеют
почитай про каждый из них

Google

Oleg
22.07.2016
09:07:42
они по разному хранят, вставляют, ищут
если ты не знаешь для чего они, тогда нет смысла их пробовать применять
их сначала нужно норм изучить

Денис
22.07.2016
09:10:53
Ну вот приведу пример
Лист и рбдерево
И туда, и туда пихаешь какие-то штуки
В лист ты будешь пихать за O(1) и вытаскивать тоже
Хотя нет, смотря откуда вытаскивать
Но поиск элемента за O(N)
А в рбтрии - все за логарифм
Вот и выбираешь под свою задачу в каком контейнере тебе удобнее и полезнее хранить

Dmitry
22.07.2016
09:37:40
получается я в коробку пихаю данные и внутри коробки описываю как с данными в ней работать?
Это как итерация ranges так?
мы же во всех данные типа ranges описываеv правила работы с ними

Oleg
22.07.2016
09:38:55
нуу...
не совсем то

Денис
22.07.2016
09:39:04

Oleg
22.07.2016
09:39:25
rbtree может являться range

Dmitry
22.07.2016
09:39:29
т.е. фиксированный набор коробок?

Денис
22.07.2016
09:39:39