- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
auto DivisibleBy = [](int d)
{
return [d](int m) { return m % d == 0; };
};
if (ranges::any_of(v, DivisibleBy(7))) {
std::cout << "At least one number is divisible by 7\n";
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
auto DivisibleBy = [](int d)
{
return [d](int m) { return m % d == 0; };
};
if (ranges::any_of(v, DivisibleBy(7))) {
std::cout << "At least one number is divisible by 7\n";
}
https://en.cppreference.com/w/cpp/algorithm/ranges/all_any_none_of
guest6 27.10.2021 02:09 # 0
Можно я возьму себе ник "ниеблоид"?
А так-то могу на руби перевести. Хочешь?
ЗЫ: Ниеблоиды это такие функции, которые отключают ADL.
Так названы в честь Эрика Ниеблёра
Okm9I6PbCKuu_nemyx 27.10.2021 02:26 # 0
ObeseYoung 27.10.2021 16:13 # 0
guest6 27.10.2021 15:48 # 0
bormand 27.10.2021 16:17 # 0
guest6 27.10.2021 16:21 # 0
CHayT 27.10.2021 16:28 # 0
guest6 27.10.2021 16:35 # 0
j123123 27.10.2021 15:51 # 0
Soul_re@ver 27.10.2021 16:04 # +3
Ведь когда-нибудь ты сможешь написать:
Правда просто и понятно?
.and_then и .or_else это реальное включение в С++23:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0798r8.html
guest6 27.10.2021 16:06 # +2
CHayT 27.10.2021 16:16 # 0
j123123 27.10.2021 16:47 # 0
> ... Unfortunately, chaining together many computations which may or may not produce a value can be verbose, as empty-checking code will be mixed in with the actual programming logic. As an example, the following code automatically extracts cats from images and makes them more cute:
But there’s a problem. What if there’s not a cat in the picture? What if there’s no good place to add a bow tie? What if it has its back turned and we can’t make its eyes sparkle? Some of these operations could fail.
Ну так а нахуя вообще делать этот "chaining together many computations"? Почему б не написать код в обычном стиле, с if-else? Зачем создавать себе проблемы, а потом героически их решать через какую-то херню?
bormand 27.10.2021 16:49 # 0
Хотят чтобы покороче да с монадками.
Soul_re@ver 27.10.2021 16:50 # 0
Job Security.
guest6 27.10.2021 16:58 # 0
bormand 27.10.2021 16:59 # 0
guest6 27.10.2021 17:02 # 0
bormand 27.10.2021 17:08 # 0
guest6 27.10.2021 17:12 # 0
Но в С++ у тебя хотя бы стат типизация, так что граница пиздеца пролегает чуть дальше.
Совсем импреративный код это тоже пиздец: говорю как жаваёб, заставший шестую джаву, где (в отличие от плюсов) даже не было "algorithms".
Я бы сказал, что если строчка с функциональной магией не вмещается в 80 символов, но надо её распиливать
bormand 27.10.2021 17:13 # +1
Где-то в районе boost::spirit?
guest6 27.10.2021 17:16 # 0
Так делать не нужно, если конечно это не DSL уровня "key=value", но такие "дсли" уже есть
bormand 27.10.2021 17:21 # 0
We need to go deeper?
Не, я просто про boost::spirit. Он сам по себе уже DSL и превращает скучный парсер в интересную ёблю с шаблонами.
j123123 27.10.2021 17:25 # +2
И что там может быть интересного в этих шаблонах? Это ж, блядь, сраное ублюдское кривое говнище, работающее поверх кривой и убогой говносистемы типов, унаследованной от сишки.
https://i.imgur.com/eP7s24N.jpg
Soul_re@ver 27.10.2021 17:25 # +1
Sounds like C++
guest6 27.10.2021 17:37 # 0
guest6 27.10.2021 18:08 # 0
То есть это не лексер, а такой конченый автомат со стеком.
Там пишешь рагулярки, и состояния и переходы. Он преобразует это в детерменированный автомат, и генерит класс.
Но я свой DSL не делал конечно, просто надо было вычленить одно говно из другово
CHayT 27.10.2021 17:59 # 0
CHayT 27.10.2021 18:02 # 0
Свиняе — это такая себе статическая типизация.
guest6 27.10.2021 18:04 # 0
Это как если бы от неправильно подключенного крана в ванне у тебя текла батарея
Soul_re@ver 27.10.2021 18:07 # 0
guest6 27.10.2021 18:27 # 0
Чтобы потом от трубы в подвале кого-то ебануло малость
Ошибки в шаблонах вроде так и выглядят
j123123 27.10.2021 17:13 # 0
Вот они предлагают такую ебанину:
Это типа то же самое, что и
верно? А такую вот ебанину вполне намакроебить можно.
guest6 27.10.2021 17:15 # 0
Если какую-то функциональность может намакроебить j123, то такая функциональность не нужна
j123123 27.10.2021 17:16 # 0
guest6 28.10.2021 13:29 # +1
Okm9I6PbCKuu_nemyx 28.10.2021 13:33 # 0
guest6 28.10.2021 13:37 # 0
guest6 28.10.2021 15:26 # +2
bormand 28.10.2021 17:03 # 0
guest6 28.10.2021 17:05 # 0
guest6 28.10.2021 18:23 # 0
guest6 28.10.2021 18:23 # 0
guest6 28.10.2021 18:25 # +1
guest6 28.10.2021 18:29 # 0
* Менеджеры
* Провайдеры
* Утилы
guest6 28.10.2021 18:32 # 0
guest6 28.10.2021 18:33 # 0
Soul_re@ver 28.10.2021 18:36 # 0
guest6 28.10.2021 18:51 # 0
guest6 28.10.2021 18:56 # 0
Кстати, у яблочников есть Foundation. Ни у кого никогда такого термина я не встречал
Desktop 28.10.2021 20:09 # 0
кстати, значение Framework эпплы тоже извратили
Desktop 28.10.2021 20:10 # 0
Soul_re@ver 27.10.2021 17:32 # 0
bormand 27.10.2021 19:34 # 0
guest6 27.10.2021 20:15 # +1
Soul_re@ver 27.10.2021 20:50 # +1
bormand 27.10.2021 20:53 # 0
guest6 27.10.2021 20:55 # 0
Хотя если в структуре лежат какие-нить дескрипторы/хендлеры то там всякие штуки могут быть смешные
rotoeb 27.10.2021 20:56 # 0
Soul_re@ver 27.10.2021 20:57 # 0
guest6 27.10.2021 22:43 # +1
rotoeb 28.10.2021 00:06 # +1
Okm9I6PbCKuu_nemyx 28.10.2021 01:33 # +1
guest6 06.11.2021 11:42 # 0
guest6 27.10.2021 16:06 # 0
guest6 28.10.2021 19:18 # 0
A mapped byte buffer and the file mapping that it represents remain valid until the buffer itself is garbage-collected.
Я потом пытаюсь писнуть в файл, и блядь "The requested operation cannot be performed on a file with a user-mapped section open."
СУУУУУУУУУУУУУКААААААААААААААААААААА
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4724038
bormand 29.10.2021 14:06 # 0
А нету какой-нибудь сторонней либы с явным unmap'ом? Вроде на гк упоминали что-то.
guest6 29.10.2021 14:17 # 0
Так-то я могу и на JNA написать, просто не хочется писать два раза (для прыщ и для сперм)
bormand 29.10.2021 14:24 # 0
Будут сегфолты как в няшной если вдруг у кого-то осталась ссылочка на это говно? Или там к замапанной памяти доступ только через методы и они начнут кидать исключения?
guest6 29.10.2021 14:39 # +1
Так что вполне реально получить болтающийся указатель.
В общем в джаве нужно с памятью аккуратно обращаться. Автоматических средств, как в С++, в ней нет(
bormand 29.10.2021 14:50 # 0
guest6 29.10.2021 14:55 # +1
Process finished with exit code -1073740940 (0xC0000374)
Exception code 0xc0000374 means you're facing heap corruption.
bormand 29.10.2021 19:52 # 0