Home
Обсуждение программирования на любых платформах
codingteam@conference.jabber.ru
Четверг, 14 февраля 2019< ^ >
m4n71k0r установил(а) тему: C, C#, C++, Clojure, Cobol, Common Lisp, D, Erlang, F#, Go, Groovy, Haskell, Java, JavaScript, Kotlin, MATLAB, OCaml, PowerShell, Python, R, Racket, Refal, Ruby, Rust, Scala, Scheme, TypeScript
Telegram channel: https://t.me/codingteam
HQ, логи: https://codingteam.org.ru/
Код постить сюда: http://lpaste.net/
Юным погромцам сюда: http://e-maxx.ru/algo/ , а ещё читать Кнутца, Корменца, Седжвикца и др.
Let's Dev (когда Капитан на мостике): http://www.youtube.com/playlist?list=PLK6mcZkmN4QTusFvp_0GVtscQbCiIg81Y
Tsoding: https://tsoding.github.io/schedule.html
http://i.imgur.com/slnyI6a.jpg
Упоминания о Flash, PHP, Pascal/Delphi/Borland, Basic, 1С караются съедением поциента.
Конфигурация комнаты
Участники комнаты

GMT+3
[00:36:52] <tg> <@sarakerrigan> [Photo]
[00:45:26] <tg> <@Devel29A> Чертовка!
[00:48:46] <tg> <@Devel29A> http://www.yaplakal.com/forum7/topic1911803.html
[01:24:29] m4n71k0r вышел(а) из комнаты
[03:49:27] unclechu вошёл(а) в комнату
[05:29:03] matraskin вошёл(а) в комнату
[05:29:14] matraskin вышел(а) из комнаты
[05:31:28] HazardPointer вышел(а) из комнаты
[06:31:11] portnov вошёл(а) в комнату
[06:41:29] codenull вошёл(а) в комнату
[06:45:42] uggur вышел(а) из комнаты: Replaced by new connection
[06:45:43] uggur вошёл(а) в комнату
[06:48:43] <codenull> Кубик-не-рубик бля хД
[07:09:11] Ender вышел(а) из комнаты
[07:17:13] Ender вошёл(а) в комнату
[07:22:11] portnov вышел(а) из комнаты
[07:27:48] Ender вышел(а) из комнаты: Replaced by new connection
[07:27:51] Ender вошёл(а) в комнату
[07:37:57] ma1uta вошёл(а) в комнату
[07:49:59] uıʃɐɟ∀ вошёл(а) в комнату
[07:51:19] uıʃɐɟ∀ вышел(а) из комнаты
[07:52:13] uıʃɐɟ∀ вошёл(а) в комнату
[07:52:15] <tg> <@fvnever> >> <sarakerrigan> [Photo]
Няка!
[08:08:16] <tg> <@Air_0> >> <dvachannel> [Photo]
[09:03:54] uıʃɐɟ∀ вышел(а) из комнаты
[09:03:58] uıʃɐɟ∀ вошёл(а) в комнату
[09:43:30] Славный капитан вошёл(а) в комнату
[10:04:40] uıʃɐɟ∀ вышел(а) из комнаты: Replaced by new connection
[10:04:43] uıʃɐɟ∀ вошёл(а) в комнату
[10:05:17] uıʃɐɟ∀ вышел(а) из комнаты
[10:06:26] <tg> <@Devel29A> Я у мамы инженер.
[10:07:37] <tg> <@Devel29A> Кусочек сахара упал с тумбочки в чайном уголке в офисе. Угодил прямо на кнопку сетевого фильтра, да так, что кнопку разомкнуло на какой-то микрон
[10:09:29] <tg> <@Devel29A> На два дня холодильник и кулер поменялись ролями. Кулер наливал только холодную воду вместо горячей, а из холодильника вместо охлажденной еды можно было брать теплую
[10:09:46] <tg> <@Devel29A> Вообще, я починил :)
[10:15:44] <tg> <@noktoborus> @ttldtor го носить атомы в дома
[10:16:30] <tg> <@Devel29A> лучше наобормот
[10:17:51] uıʃɐɟ∀ вошёл(а) в комнату
[10:18:09] <tg> <@ingvarjackal> >> <Devel29A> На два дня холодильник и кулер поменялись ролями. Кулер наливал только холодную воду вместо горячей, а из холодильника вместо охлажденной еды можно было брать теплую
кулер и должен холодную воду наливать
[10:18:21] uıʃɐɟ∀ вышел(а) из комнаты
[10:18:44] m4n71k0r вошёл(а) в комнату
[10:19:13] <tg> <@Devel29A> >> <ingvarjackal> кулер и должен холодную воду наливать
И холодную и горячую
[10:19:37] <tg> <@Devel29A> Название просто исторически сложившееся и не отражает
[10:21:29] unclechu вышел(а) из комнаты
[10:28:36] <tg> <@ttldtor> понапридумывают дурацких названий
[10:28:37] <tg> <@ttldtor> утро
[10:31:25] <tg> <@ttldtor> >> <Air_0> >> <dvachannel> [Photo]
А я без трусов
Бабуля даст погонять кровать
Хочешь поговорить об Иисусе?
[10:32:39] <tg> <@winged_pegasus> >> <ttldtor> А я без трусов
>> Бабуля даст погонять кровать
>> Хочешь поговорить об Иисусе?
А в ответ:
А я тоже
Скрипучая кровать! Класс!
А давай!
[10:32:54] <tg> <@winged_pegasus> ЧСХ, это внезапно очень вероятные ответы
[10:33:23] <tg> <@ttldtor> не скрипучая а с 20 перинами
[10:34:28] <tg> <@winged_pegasus> Ну тут уж я не соглашусь: не люблю слишком мягкие кровати(
[10:34:32] <tg> <@winged_pegasus> От них спина болит потом.
[10:34:52] <tg> <@ttldtor> как-то нас разве молодые девочки-сектантки
[10:34:56] <tg> <@ttldtor> развели*
[10:35:14] <tg> <@ttldtor> Ой, тут такой фильм будут бесплатно показывать
[10:36:41] <tg> <@ttldtor> ну не развели, но заинтересовали сильно. Хорошо, что они не могли скрыть всю радость от будущего нашего приобщения
[10:37:47] <tg> <@ttldtor> кстати, да. Вариант:
А я в семейниках.
А я тоже!
был бы менее вероятен
[10:38:39] <tg> <@ttldtor> >> <noktoborus> @ttldtor го носить атомы в дома
я половину потеряю, а половину испорчу
[10:39:35] <tg> <@winged_pegasus> >> <ttldtor> кстати, да. Вариант:
>> А я в семейниках.
>> А я тоже!
>> был бы менее вероятен
Я исхожу от мнения, что раз ты выбрал на свидание  девушку, то скорей всего она чем-то уже похожа по твоему мышлению и есть ненулевая вероятность, что на такой твой вопрос будет такой же ебанутый ответ.)
[10:40:14] <tg> <@ttldtor> >> <winged_pegasus> Я исхожу от мнения, что раз ты выбрал на свидание  девушку, то скорей всего она чем-то уже похожа по твоему мышлению и есть ненулевая вероятность, что на такой твой вопрос будет такой же ебанутый ответ.)
выбрал? Выбирают чисто по химии
[10:40:17] <tg> <@winged_pegasus> А встречаться с девушками со слишком отличными подходами не вижу смысла встречаться и иметь отношения — не продержаться нихрена.
[10:40:30] <tg> <@winged_pegasus> Ой, кривое предложение.
[10:40:33] <tg> <@fvnever> >> <ttldtor> выбрал? Выбирают чисто по химии
Я читал, что между президентами химия бывает
[10:41:29] <tg> <@ttldtor> это первое свидание
[10:41:33] <tg> <@ttldtor> ты её не знаешь
[10:41:45] <tg> <@ttldtor> встретились хз где
[10:41:55] <tg> <@winged_pegasus> Тогда тем более.
[10:42:43] <tg> <@ttldtor> почему ты думаешь, что люди похожи на тебя?)
[10:42:46] <tg> <@Devel29A> >> <ttldtor> как-то нас разве молодые девочки-сектантки
Ват?
[10:42:57] <tg> <@winged_pegasus> >> <ttldtor> почему ты думаешь, что люди похожи на тебя?)
Я не думаю как раз.
[10:43:15] <tg> <@ttldtor> Я исхожу от мнения, что раз ты выбрал на свидание  девушку, то скорей всего она чем-то уже похожа по твоему мышлению и ...
[10:43:29] <tg> <@ttldtor> А встречаться с девушками со слишком отличными подходами не вижу смысла встречаться и иметь отношени...
[10:43:37] <tg> <@winged_pegasus> Ну бля. Вас же что-то объединяет, раз пришли?
[10:43:58] <tg> <@ttldtor> эм, познакомились в очереди за хлебом?
[10:44:00] <tg> <@winged_pegasus> Какой смысл притворяться кем-то?
[10:44:10] <tg> <@ttldtor> смысл всегда есть
[10:44:19] <tg> <@Devel29A> >> <ttldtor> эм, познакомились в очереди за хлебом?
Хуясе! И до сих пор аж из 80-х стояли чтоли?:)
[10:44:25] <tg> <@winged_pegasus> >> <ttldtor> эм, познакомились в очереди за хлебом?
Я знакомился в магазине игрушек, например. С продавщинец. И это было прикольно.)
[10:44:37] <tg> <@winged_pegasus> продавщицей*
[10:44:40] <tg> <@ttldtor> >> <winged_pegasus> Какой смысл притворяться кем-то?
ты слышал про флирт?
[10:44:45] <tg> <@winged_pegasus> Каэш
[10:44:57] <tg> <@ttldtor> зачем спрашиваешь тогда?
[10:45:04] <tg> <@winged_pegasus> Флирт всё равно выйдет  у каждого специфически.
[10:45:06] <tg> <@winged_pegasus> й*
[10:45:38] <tg> <@Devel29A> >> <winged_pegasus> Я знакомился в магазине игрушек, например. С продавщинец. И это было прикольно.)
В мне везет еще больше! Орков все боятся и можно не морочить себе голову такой хуйней. Правда, один раз не прокатило, но это было ДАВНО!
[10:47:33] <tg> <@ttldtor> ну такие как орки и мантикоры могли знакомиться в чатиках, например)
[10:48:06] <tg> <@ttldtor> правда до первого свидания можно было перетереть всё и нах послать
[10:48:33] <tg> <@Devel29A> Не знаю как насчот мантикоров, но орки не понимают намеков, пока их за яйца не взять
[10:48:54] <tg> <@Devel29A> "Дубиной по голове и в пещеру" вот это вот все
[10:49:03] <tg> <@winged_pegasus> >> <Devel29A> В мне везет еще больше! Орков все боятся и можно не морочить себе голову такой хуйней. Правда, один раз не прокатило, но это было ДАВНО!
«И так я женился»!
[10:49:17] <tg> <@Devel29A> Нучотысразуначинаеишь!
[10:49:24] <tg> <@winged_pegasus> xD
[11:06:20] <tg> <@no111u3> )))
[11:12:44] Mr.Purple вошёл(а) в комнату
[11:14:33] Mr.Purple вышел(а) из комнаты
[11:27:54] uıʃɐɟ∀ вошёл(а) в комнату
[11:28:30] uıʃɐɟ∀ вышел(а) из комнаты
[11:29:59] uıʃɐɟ∀ вошёл(а) в комнату
[11:49:36] <tg> <@ttldtor> @Air_0 https://www.youtube.com/watch?v=9-_TLTdLGtc  Тебе понравится, покажи на работе и пусть они идут учить го какой-нибудь
[11:49:50] <tg> <@ttldtor> тому что плюсы - это страдание)
[11:53:31] <tg> <@ttldtor> пара тройка видосиков от Николая должно отбить любое желание продолжать (если ты не пришёл из ещё большего ада, типа джаваскрипта)
[11:57:22] uıʃɐɟ∀ вышел(а) из комнаты: Replaced by new connection
[11:57:25] uıʃɐɟ∀ вошёл(а) в комнату
[11:57:54] uıʃɐɟ∀ вышел(а) из комнаты
[12:05:29] <tg> <@noktoborus> [Sticker ❤]
[12:05:41] <tg> <@noktoborus> @ttldtor приезжай в питер, го свиданку
[12:07:04] <tg> <@ttldtor> >> <noktoborus> @ttldtor приезжай в питер, го свиданку
что я тебе сделал?
[12:07:59] <tg> <@noktoborus> >> <ttldtor> что я тебе сделал?
на налил
[12:14:29] ma1uta вышел(а) из комнаты: Replaced by new connection
[12:14:30] ma1uta вошёл(а) в комнату
[12:18:15] uıʃɐɟ∀ вошёл(а) в комнату
[12:18:49] uıʃɐɟ∀ вышел(а) из комнаты
[12:19:22] uıʃɐɟ∀ вошёл(а) в комнату
[12:53:01] uıʃɐɟ∀ вышел(а) из комнаты: Replaced by new connection
[12:53:06] uıʃɐɟ∀ вошёл(а) в комнату
[12:53:33] uıʃɐɟ∀ вышел(а) из комнаты
[12:54:04] uıʃɐɟ∀ вошёл(а) в комнату
[13:11:23] <tg> <@noktoborus> Нужно сделать атомную волынку. Портативный ускоритель частиц, работающий от того, на сколько сильно дует исполнитель
[13:16:09] <tg> <@Devel29A> стесняюсь спросить, а дуть чем надо?
[13:17:03] <tg> <@noktoborus> ртом?
[13:17:24] <tg> <@Devel29A> А хватит производительности. Волынка-то атомная
[13:45:52] <tg> <@Air_0> >> <dvachannel> [Photo] Шах и мат
[13:47:44] <tg> <@sarakerrigan> ну норм чо
[13:47:53] <tg> <@sarakerrigan> ща бы миллионы лет пролежать на диване
[13:48:23] <tg> <@sarakerrigan> а про то что мебель должна размножаться они забыли?
[13:49:27] <tg> <@sarakerrigan> кстати я помню у Лема был какой-то странный рассказ, в котором упоминались бессмертные и живые стулья, бегающие на своих ножках
[13:49:45] <tg> <@sarakerrigan> одну они успели отпилить и приготовить
[13:56:24] <tg> <@noktoborus> >> <Air_0> >> <dvachannel> [Photo] Шах и мат
мебель не ебётся
[13:56:48] <tg> <@noktoborus> >> <sarakerrigan> кстати я помню у Лема был какой-то странный рассказ, в котором упоминались бессмертные и живые стулья, бегающие на своих ножках
в плоском мире есть груша разумная и сундуки из неё
[14:04:46] <tg> <@winged_pegasus> >> <Air_0> >> <dvachannel> [Photo] Шах и мат
Ну ваще ересь даже с тз церкви
[14:09:49] <tg> <@Devel29A> >> <noktoborus> мебель не ебётся
Черенками может трется?
[14:10:04] <tg> <@winged_pegasus> >> <Devel29A> Черенками может трется?
Почкование!
[14:10:15] <tg> <@Devel29A> >> <winged_pegasus> Ну ваще ересь даже с тз церкви
Я в конце ждал, что промо на диваны в мебельном будет
[14:10:25] <tg> <@Devel29A> >> <winged_pegasus> Почкование!
Чпочкование!
[14:10:34] <tg> <@winged_pegasus> >> <Devel29A> Я в конце ждал, что промо на диваны в мебельном будет
А это офигенная идея!
[14:10:45] <tg> <@winged_pegasus> >> <Devel29A> Чпочкование!
Дыа
[14:10:58] <tg> <@Devel29A> Типа, ВАША МЕБЕЛЬ САМА НЕ ЭВОЛИЦИОНИРУЕТ, ДОНТ ДИЛЭЙ БАЙ ТУДЭЙ\
[14:11:14] <tg> <@Devel29A> +7123456789
[14:11:23] <tg> <@winged_pegasus> Ыыы
[14:11:25] <tg> <@Devel29A> Я бы повелся на такую рекламу
[14:11:27] <tg> <@winged_pegasus> Ты гений!
[14:11:30] <tg> <@ttldtor> ваша мебель эволюционирует, а вы - нет
[14:20:25] <tg> <@a1batross> Любят люди искать себе воображаемых врагов.
[14:34:29] <tg> <@noktoborus> странно, что идея эволюции не ассимилируется церквью
[14:34:36] <tg> <@noktoborus> казалось бы, это так просто
[14:35:09] <tg> <@winged_pegasus> >> <noktoborus> странно, что идея эволюции не ассимилируется церквью
Ассимилируется. Почитай папу Франциска, например.
[14:35:35] <tg> <@noktoborus> масса заявляет обратное
[14:35:40] <tg> <@winged_pegasus> Да и похуй.
[14:35:48] <tg> <@noktoborus> не пох
[14:36:04] <tg> <@noktoborus> то, что заявляют отдельные маргиналы ничего не значит
[14:36:07] <tg> <@winged_pegasus> С православной церковью сложней — у них нет единоличного управления, там всё решает синод. (Демократичненько, однако)
[14:42:56] <tg> <@Devel29A> Не
[14:43:02] <tg> <@Devel29A> Это не демократия
[14:43:26] <tg> <@Devel29A> Синод же говорит голосом высокопоставленных попов
[14:45:02] <tg> <@Devel29A> http://www.yaplakal.com/forum1/topic1912068.html
[14:48:26] <tg> <@Devel29A> Наконец-то найдут управу на мантикоров :)
[15:03:19] <tg> <@winged_pegasus> Почему нет, когда да?
[16:02:41] HazardPointer вошёл(а) в комнату
[16:02:41] HazardPointer вышел(а) из комнаты
[16:06:10] rafaelrs вышел(а) из комнаты
[16:08:15] rafaelrs вошёл(а) в комнату
[16:08:58] HazardPointer вошёл(а) в комнату
[16:54:25] portnov вошёл(а) в комнату
[16:56:32] ma1uta вышел(а) из комнаты
[17:29:34] <tg> <@ttldtor> а у гнутых не принято бэкпортить такие штуки, да? https://wandbox.org/permlink/5X8aGGpWiFRZKABo
[17:29:51] <tg> <@ttldtor> только в 5-й версии починили
[17:30:06] <tg> <@ttldtor> А, да мне тут господа с рхелом  попались
[17:30:08] <tg> <@ttldtor> 6-м
[17:30:13] <tg> <@ttldtor> ппц
[17:30:26] <tg> <@Devel29A> Я, кстати, не знаю
[17:30:55] <tg> <@Devel29A> Перейти на компилятор новее не составляет труда обычно
[17:33:23] <tg> <@ttldtor> ну, в RHEL/Centos стареньких это не совсем просто
[17:35:15] <tg> <@Devel29A> Там вроде LTS у них всех
[17:35:32] <tg> <@Devel29A> Хотя, у нас 4,9,3 тоже
[17:35:51] <tg> <@Devel29A> CentOS 7
[17:39:45] <tg> <@ttldtor> ну вот плохо, что не бэкпортят фиксы...
[17:45:46] <tg> <@Devel29A> Хорошо же
[17:45:55] <tg> <@Devel29A> Потонешь иначе в саппорте старого говна
[17:46:12] <tg> <@Devel29A> Пусть бекпортят меинтейнеры репы
[19:07:10] m4n71k0r вышел(а) из комнаты
[19:11:39] unclechu вошёл(а) в комнату
[19:16:27] Minoru вошёл(а) в комнату
[19:36:18] <Minoru> утро!
[19:39:11] <tg> <@ttldtor> >> <Devel29A> Потонешь иначе в саппорте старого говна
не, короче, я отвечаю за либку одну. Она собирается под винду (можно под линухи, но без некоторой автоматизации). Прилетает запрос, у людей на серваках центос 6 и 4.8 гцц. Либка сишная собирается, но враппер на плюсах уже - нет. Мы собираем (мне тут надо побашить немножко ещё), выкладываем им лично и объясняем, что им делать, чтобы им хорошо жилось.
[19:39:33] m4n71k0r вошёл(а) в комнату
[19:40:15] <m4n71k0r> » <Minoru> утро!
утро, да.
[19:40:26] <m4n71k0r> я вчера был в забавном заведении - breakfasteria
[19:40:39] <m4n71k0r> там в любое время суток тебе говорят "Доброе утро"
[19:49:48] uıʃɐɟ∀ вышел(а) из комнаты: Replaced by new connection
[19:49:49] uıʃɐɟ∀ вошёл(а) в комнату
[19:56:08] <Minoru> весьма логично
[20:03:48] <tg> <@Devel29A> >> <ttldtor> не, короче, я отвечаю за либку одну. Она собирается под винду (можно под линухи, но без некоторой автоматизации). Прилетает запрос, у людей на серваках центос 6 и 4.8 гцц. Либка сишная собирается, но враппер на плюсах уже - нет. Мы собираем (мне тут надо побашить немножко ещё), выкладываем им лично и объясняем, что им делать, чтобы им хорошо жилось.
Примерно поэтому у нас билдежка идет на древних конопляторах. Вроде gcc4.9 и штудии какой-то толи 2005 толи около того
[20:04:18] <tg> <@Devel29A> Хотя студийные билды не продакшеновские
[20:04:26] <tg> <@Devel29A> Тупо дебаг сборка на ней :))
[20:04:51] <tg> <@Devel29A> Тот, кто это придумал не умеет дебажится, кроме как в студии, наверное
[20:18:52] <m4n71k0r> там в расте завезли макру для тех, кто любит дебажить логгированием, кстати
[20:20:06] <portnov> #ifdef DEBUG?
[20:24:39] uıʃɐɟ∀ вышел(а) из комнаты: Replaced by new connection
[20:24:42] uıʃɐɟ∀ вошёл(а) в комнату
[20:26:48] <m4n71k0r> dbg!
[20:26:54] <m4n71k0r> вип!
[20:26:59] <m4n71k0r> vip!
[20:27:04] <m4n71k0r> гм, ладно
[20:31:22] <tg> <@noktoborus> мактинкора
[20:31:27] <tg> <@noktoborus> го на атомы
[20:50:52] <Minoru> распадаться на атомы?
[20:56:27] <tg> <@Devel29A> слуште
[20:56:46] <tg> <@Devel29A> А вот можно как-то хук навесить на вызовы библиотечных функций
[21:02:48] <Minoru> да-а-а? Это в какой ОС? Ты про динамически подгружаемые библиотеки говоришь?
[21:21:05] <tg> <@Devel29A> да
[21:21:07] <tg> <@Devel29A> в любой
[21:22:48] <tg> <@Devel29A> И это был вопрос, да
[21:24:15] <tg> <@Devel29A> https://www.codeproject.com/Articles/70302/Redirecting-functions-in-shared-ELF-libraries
[21:26:35] <Minoru> > любой
> ELF
Но все равно спасибо, я не знал про такую фичу. Любопытно!
[21:35:24] Ender вышел(а) из комнаты
[21:51:33] <Minoru> итак, задача: у меня есть функция, внутри которой используется генератор псевдослучайных чисел. Для простоты скажем, что это просто std::shuffle: https://en.cppreference.com/w/cpp/algorithm/random_shuffle Чтобы тестировать эту функцию, я хотел бы инициализировать генератор фиксированным сидом и использовать определённый алгоритм
[21:53:09] <Minoru> проблема №1: совершенно неочевидно, какой именно генератор использовать по умолчанию. Кажется, random_device подходит, потому что он автоматически инициализируется сидом из системы (может, даже из железного PRNG или RNG). Но это догадка, cppreference это толком не объясняет, и по общей структуре <random> это не очевидно
[21:54:00] <Minoru> проблема №2: генераторы не наследуются от какого-то общего класса, поэтому я не могу написать функцию, принимающую генератор через указатель. Темплейты и только темплейты
[21:54:22] uıʃɐɟ∀ вышел(а) из комнаты
[21:54:27] uıʃɐɟ∀ вошёл(а) в комнату
[22:06:54] <tg> <@Devel29A> Ну, я бы сделал функтор, в который в тестах передается тестовый типа
[22:07:21] <tg> <@Devel29A> и спецификацию темплейтную для теста свою написать
[22:12:37] <tg> <@noktoborus> > Разработчики PostgreSQL полагали, что успешно завершившийся вызов fsync() гарантирует, что поступившие данные записаны на постоянный носитель, но оказалось, что существуют ситуации когда это не так.
[22:12:45] <tg> <@noktoborus> о-х-у-е-н-н-о
[22:17:07] <tg> <@Devel29A> ЛОЛ
[22:20:18] <tg> <@noktoborus> http://www.opennet.ru/opennews/art.shtml?num=50148
[22:27:09] <Minoru> @Devel29A: но это не решает ни одну из проблем ._. Все равно непонятно, что передавать в функтор в боевом коде, и как избежать перемещения всей функции в .h с целью сделать её шаблонной
[22:44:57] <tg> <@Devel29A> >> <Minoru> @Devel29A: но это не решает ни одну из проблем ._. Все равно непонятно, что передавать в функтор в боевом коде, и как избежать перемещения всей функции в .h с целью сделать её шаблонной
Не что передавать, а какую специализацию вызвать. А в хидере будет только темплейтная функция
[22:47:54] portnov вышел(а) из комнаты
[22:50:55] <tg> <@Devel29A> http://www.gotw.ca/publications/mill17.htm
[22:56:50] <Minoru> а, то есть ты предлагаешь две перегрузки — одна боевая без аргумента PRNG, вторая темплейтная тестовая с аргументом PRNG?
[23:01:08] <tg> <@noktoborus> Минора
[23:01:21] <tg> <@noktoborus> Зачем ты программируещь в 11 ночера?
[23:01:27] <tg> <@noktoborus> Бухал бы лучш
[23:01:52] <Minoru> какие ещё 11 ночера? У меня утро. Это во-первых
[23:02:22] <Minoru> во-вторых, в другое время я не могу программировать, потому что я сплю
[23:02:27] <tg> <@noktoborus> Никогл не иетересует, что там у ьебя
[23:02:41] <tg> <@noktoborus> Вся страна живёт по москве
[23:02:49] <tg> <@noktoborus> Ты же не белорус какой?
[23:03:08] <Minoru> а бухать я не против. У меня вот чай скоро приготовится
[23:03:10] <tg> <@Devel29A> >> <Minoru> а, то есть ты предлагаешь две перегрузки — одна боевая без аргумента PRNG, вторая темплейтная тестовая с аргументом PRNG?
Как-то так
[23:07:46] <Minoru> спасибо, Девел! Пойду попробую
[23:21:08] <Minoru> нет, все равно не сходится: вся логика должна быть в самой общей функции, т.е. в той, где аргументов больше. В данном случае — в шаблонной функции. Очень не охота тащить её в .h :(
[23:21:59] <tg> <@noktoborus> Ты всё ещё хранить плюснутые хидеры в .h?
[23:22:37] <Minoru> а что, если переложить в .hpp, они станут менее уродливым пережитком прошлого?
[23:26:01] <tg> <@noktoborus> Если переложишь их в .d
[23:29:30] <tg> <@ttldtor> переложи их в файлы без расширения
[23:30:07] <tg> <@ttldtor> бывают, что делят на .h и .hpp (тут логика)
[23:30:13] <tg> <@ttldtor> бывает
[23:37:25] <tg> <@Devel29A> >> <Minoru> нет, все равно не сходится: вся логика должна быть в самой общей функции, т.е. в той, где аргументов больше. В данном случае — в шаблонной функции. Очень не охота тащить её в .h :(
Тогда мути класс
[23:37:49] <tg> <@Devel29A> там можно частично специализировать
[23:38:19] <tg> <@Devel29A> Ну, либо тупо идентичные функции
[23:38:29] <tg> <@Devel29A> Но линковать либо тестовую, либо боевую
[23:39:02] <tg> <@Devel29A> но в одном месте все равно не поиметь это
[23:39:23] <tg> <@Devel29A> Какой-то враппер поверх разве что
[23:39:33] <tg> <@Devel29A> Но это какая-то наркомания
[23:40:02] <tg> <@Devel29A> Хотя, я видел где-то, что в хидерах только декларации кладут
[23:40:17] <tg> <@Devel29A> а в tpp файлы уже сами имплементации шаблонов
[23:40:30] <tg> <@Devel29A> и их инклюдят в конце hpp
[23:41:39] <m4n71k0r> почему я не вижу проблем?
[23:42:13] <m4n71k0r> тащу в hpp и не парюсь
[23:44:11] <tg> <@Devel29A> Минору эстет
[23:44:35] <tg> <@Devel29A> Не, если надо нарушу выпячивать, то писать тырфейс надо
[23:44:41] <tg> <@Devel29A> пустой
[23:45:00] <tg> <@Devel29A> А если унутрях, то тащить в hpp без зазрения совести
[23:45:07] <tg> <@Devel29A> Но если реально толстые, то в tpp
[23:45:21] <tg> <@Devel29A> Иначе хидеры не читаемые могут стать
[23:48:04] <Minoru> @Devel29A: идея с классом неплохая, спасибо! Обдумаю
[23:48:29] <Minoru> врапперы и полиморфизм через линковку это жесть. У меня, конечно, легаси, но не настолько суровое. И лучше уж темплейты, чем такая магия
[23:48:42] <m4n71k0r> распилить на стратегии (алгоритмы тупые), стратегии разнести, настраивать враппер стратегиями, стратегии можно выбирать объектами-тегами, которые представляют из себя просто пустой объект...а там массив вариантов
[23:48:50] <m4n71k0r> в жопу линковку
[23:49:09] <m4n71k0r> с шаблонами тоже будет "магия"
[23:49:21] <tg> <@Devel29A> Это верно
[23:49:28] <Minoru> m4n71k0r: ну я хочу, чтобы в .h объявления, а в .cpp определения. Тащить часть определений в .h мне не нравится, разделять определения между .cpp и .hpp — тоже как-то не очень. Хотя последнее ближе всего к моему идеалу чистоты-красоты, конечно
[23:50:16] <m4n71k0r> не представляю как шаблоны определять в цпп
[23:50:31] <m4n71k0r> точнее представляю, но мерзко это
[23:50:56] <Minoru> никак. Понятно, что если нужны шаблоны, то выбор уже между «всё в .h» и «интерфейсы в .h, определения в .hpp»
[23:51:24] <tg> <@Devel29A> >> <m4n71k0r> не представляю как шаблоны определять в цпп
Вроде как нельзя
[23:51:37] <tg> <@Devel29A> Точнее граблей не оберешься
[23:51:53] <tg> <@Devel29A> Линкер не поймет шутку
[23:52:21] <m4n71k0r> ну придётся включать выборочно cpp, не вижу особой разницы
[23:52:35] <m4n71k0r> или был ещё вариант с extern, да?
[23:52:56] <Minoru> идея Девела про класс мне нравится больше, чем стратегии, потому что эта настройка влияет только на один метод моего класса. Делать весь класс шаблонным и настраивать его как-то не очень красиво; лучше вынести настраиваемую часть в отдельный класс, в продавшене параметризовать одним типом (random_device тот же), в тестах — другим (каким-то стандартным генератором с заранее известным сидом)
[23:53:27] <m4n71k0r> а
[23:54:00] <Minoru> ну т.е. тесты тогда будут уже не на основной класс, а только на этот вспомогательный
[23:54:25] <Minoru> ну ладно, спасибо за идеи, пойду посплю
[23:54:27] Minoru вышел(а) из комнаты
[23:55:23] m4n71k0r вышел(а) из комнаты
Powered by ejabberd - robust, scalable and extensible XMPP server Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!