- 1
https://tsar1997.blogspot.com/ блог царя
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 343
+7
https://tsar1997.blogspot.com/ блог царя
> Я продолжил умножать на ноль недоязычки. Сектанты там атакуют со всех сторон. Сидел в окопе всё это время.
лол
+2
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1371r1.pdf#section.4
// Pattern Matching P1371R1
// before
auto&& [x, y] = p;
if (x == 0 && y == 0) {
std::cout << "on origin";
} else if (x == 0) {
std::cout << "on y-axis";
} else if (y == 0) {
std::cout << "on x-axis";
} else {
std::cout << x << ',' << y;
}
// after
inspect (p) {
[0, 0]: std::cout << "on origin";
[0, y]: std::cout << "on y-axis";
[x, 0]: std::cout << "on x-axis";
[x, y]: std::cout << x << ',' << y;
}
Говностандартизаторы очередную хуйню изобретают. Нет чтоб нормальную гомоиконность сделать, чтоб через нее любую такую поебень синтезировать можно было, не изменяя говностандарт, не добавляя всяких новых statement. И почему они не хотят эту херню прикрутить тупо к switch? Что если у меня переменная называется inspect, мне ее что, переименовывать?
Давайте пропосал напишем, чтоб для стейтментов отдельные неймспейсы были, и чтоб можно было свои самопальные стейтменты написать на каком-то отдельном говноязыке (шаблоны под эту хуйню, как я понял, не подходят)? Ну чтоб у всех окончательно сорвало крышу от обилия хуйни.
−1
#include <boost/hana.hpp>
#include <boost/hana/ext/std/tuple.hpp>
#include <cstdint>
namespace hana = boost::hana;
using namespace hana::literals;
using hana::transform, hana::decltype_, hana::to_set, hana::type_c;
auto copy = [](uint8_t * in, uint8_t * out, auto n, auto s) {
n.times.with_index([&](auto x) {
if constexpr(x == s) {
++in;
} else {
*(uint16_t *)out = *(uint16_t *)in;
out +=2; in += 2;
}
});
return in;
};
auto f(uint8_t * in, uint8_t * out) {
return copy(in, out, 33_c, 15_c);
}
https://habr.com/ru/post/482834/#comment_21094618
> Простая задача, самый базовый вариант https://godbolt.org/z/5F5mt9 — повторите.
Очередные набросы крестоговна на хабр от царя.
Найдите UB.
−1
// https://godbolt.org/z/ZsXDti
#include <boost/hana.hpp>
#include <range/v3/view.hpp>
#include <range/v3/experimental/view/shared.hpp>
#include <iostream>
using namespace ranges::views;
using std::vector, boost::hana::_, ranges::concat_view, ranges::experimental::views::shared;
vector<double> sort(vector<double> vec) {
if(size(vec) <= 1) {
return vec;
} else {
auto pivot = vec[size(vec) / 2];
return concat_view(
sort(vec | filter(_ < pivot)),
vec | filter(_ == pivot),
sort(vec | filter(_ > pivot))
);
}
}
int main() {
std::cerr << (sort({30, 20, 50, 40}) | shared | all) << std::endl;
}
https://habr.com/ru/post/482318/#comment_21072122
Царь набрасывает на хабр какое-то крестобустоговно, называя его красивым.
−1
From : Dmitry Pomogaev, 2:5079/12 (19 Feb 96 12:30)
To : Alexey Gorobinsky
Dear Alexey,
Once upon a time Alexey Gorobinsky wrote to Alexander Lapaev as it follows:
AG> C - сукс по опpеделению
AG> спотыкаешся на мелочах. И если ты каждую мелочь не пpопишешь
[...skipped by DVP...]
AG> Хpеновейшая пеpеносимость
[...skipped by DVP...]
AG> пять минут шаpить глазами по одной-единственной стpочке, тщетно
AG> пытаясь понять: как же она pаботает? Вообще, Си - лидеp по количеству
AG> неявных ошибок.
[...skipped by DVP...]
AG> Я все это испытал на себе. До сих поp помню...
[...skipped by DVP...]
----------------------------------------------------------------------------
Доpогая pедакция жуpнала "MelcoHard Kitchen", пишет Вам Петя
Иванов. Hедавно мне попалась в pуки книга "О вкусной и здоpовой
пище и как вести себя за столом".
Так они pекомендуют пользоваться ножом и вилкой. Я купил и то
и дpугое, но pезультат оказался не таким, как я ожидал. Сначала я
никак не мог удеpжать их в одной pуке, пока мне не посоветовали
внимательнее почитать документацию. Там я нашел место(гады! они
хотя бы в ФАК вынесли!!), что деpжать их нужно pазными pуками.
Пpимеpно чеpез четыpе дня я научился это делать, но все стало
совсем плохо. Вилкой я сильно поpезал себе пальца на ноге, а ножом
пpоткнул ухо. Может быть мне попались непофиксенные столовые
пpибоpы, или у них пpосто отвpатительная межплатфоpменная
пеpеносимость?
Доpогой Петя! Скоpее всего, столовые пpибоpы здесь не пpи
чем. Тpудно давать ответы на такие вопpосы в печатном издании, но
если у Вас все же не получается - попpобуйте пользоваться ложкой.
Доpогая pедакция, это опять Петя. Как Вы и советовали, я
попpобовал. У меня получилось лучше, но не все. Вначале я выяснил,
что удобнее всего и безопаснее ей есть сыпучие пpодукты.
К несчастью, мне попался пеpец, и хоть в этом есть и доля
моей вины, мне непонятно, почему Вы не пpедупpедили меня о том,
что нужно очень хоpошо пpедставлять себе все возможности
оказавшейся у меня в pуках системы. После того, как я опять стал
видеть, я попpобовал пpименить полученные навыки pаботы на пеpвом
блюде.
Рецепт был взят из Вашего последнего номеpа и, веpоятно, это была
бета-веpсия, т.к. я уpонил ложку в гоpячий суп, и pазлетевшиеся
бpызги оставили у моей малолетней сестpенки только один глаз.
Согласитесь, что в ее 34 года это почти гоpе. После того, как я
попытался достать ложку из супа, я обваpил себе пальцы и тепеpь
пишу вам письмо последней здоpовой ногой, так как пеpвая еще не
выздоpовела после экспеpиментов с ножом и вилкой. Скажите мне, что
я делал не так.
Доpогой Петя! Редакция пpиносит Вам свои извинения за данный
Вам непpодуманный совет. Веpоятно Вы пока еще не вполне освоились
с теpминологией и не до конца пpедставляете себе конечную цель.
Фактически, задача не является столь сложной. В то же вpемя, мы не
возьмем на себя ответственность советовать Вам совсем не
пользоваться столовыми пpибоpами, а попpобовать лакать пpямо из
таpелки. Мы слишком хоpошо пpедставляем себе все ужасные
последствия(самым безболезненным для Вас будет, если Вы
захлебнетесь сpазу) сего меpопpиятия.
Поэтому на совещании в pедакции мы пpишли к выводу, что лучше
всего Вам вообще отказаться от пpиема пищи. Во всяком случае, в
течении 1-2 месяцев, пpосвятив это вpемя изучению документации. Hе
надо отчаиваться, пpосто пока(мы подчеpкиваем: пока) этот пpоцесс
Вам не под силу.
----------------------------------------------------------------------------
Faithfully, Dmitry.
Aka DVP.
https://www.cs.bgu.ac.il/~barnshte/CompHumor/texts/c-sux.txt
Там еще много всяких баянов: https://www.cs.bgu.ac.il/~barnshte/CompHumor/ кодировка KOI8-R
+2
Ну я думаю все уже в курсе этой хуйни с обыском в Nginx
Обыски, Сысоев и Коновалов были задержаны и прочая такая хуйня, традиционная для жителей РФ
https://habr.com/ru/company/itsumma/blog/479942/
Потом всякие набросы на всё том же хабре в духе "Я-МЫ Nginx" и так далее.
Особенно забавно например такое:
https://pbs.twimg.com/media/ELqxwTcXkAA04zq?format=jpg&name=large
Социальная сеть, отжатая в результате налета на создателя силовиков большой IT-корпорацией во главе олигарха, выступает против налета силовиков на создателя веб-сервера, предпринятого в попытке отжать компанию большой IT-корпорацией во главе олигарха.
+3
#include <iostream>
using namespace std;
class lock_guard_ext{
public:
lock_guard_ext() { cout << "lock_guard_ext ctor" << endl; }
~lock_guard_ext() { cout << "lock_guard_ext dtor" << endl; }
};
struct Access {
lock_guard_ext lock;
int & ref_to_value;
};
int & t() {
throw 0;
}
Access foo1() {
return { {}, t() };
}
int main () {
try {
volatile auto a = foo1();
} catch (int) {
}
}
В шланге деструктор вызывается, в gcc не вызывается.
https://wandbox.org/permlink/7sbsqzhbo0o7dOse
+1
> 10,000 Domino Computer (4-bit Full Adder) Remade in Unreal Engine 4
https://www.youtube.com/watch?v=4KTfH1Gyn9g
Надо запилить компилятор из Verilog в домино
+2
#include <stdio.h>
#include <inttypes.h>
#include <string.h>
// endian dependend
#define PUT3(a,b,c) (((uint64_t)a<<8*0) | ((uint64_t)b<<8*1) | ((uint64_t)c<<8*2))
void testswitch(uint64_t x)
{
switch (x)
{
case PUT3('a','b','c'): printf("abc\n");
break;
case PUT3('d','e','f'): printf("def\n");
break;
case PUT3('g','h','i'): printf("ghi\n");
break;
default: printf("Choice other than abc, def and ghi\n");
break;
}
}
int main()
{
uint64_t x = 0;
char a[] = "abc";
memcpy(&x, a, sizeof(a)-1);
testswitch(x);
char b[] = "def";
memcpy(&x, b, sizeof(a)-1);
testswitch(x);
char c[] = "ghi";
memcpy(&x, c, sizeof(a)-1);
testswitch(x);
return 0;
}
switch для строк!
Перечитывал несвежие говнокоды, где я выкладывал творчество вконтактоолимпиадников https://govnokod.ru/23170#comment388376
+4
// https://godbolt.org/z/PPAWM0
#include <embed>
#include <cstdint>
constexpr std::uint64_t val_64_const = 0xcbf29ce484222325u;
constexpr std::uint64_t prime_64_const = 0x100000001b3u;
inline constexpr std::uint64_t
hash_64_fnv1a_const(const char* const ptr, std::size_t ptr_size, const std::uint64_t value = val_64_const) noexcept {
return (ptr_size == 1)
? value :
hash_64_fnv1a_const(&ptr[1],
ptr_size - 1,
(value ^ static_cast<std::uint64_t>(static_cast<char>(*ptr))) * prime_64_const);
}
int main () {
constexpr std::span<const char> art_data = std::embed("/dev/urandom", 32);
constexpr std::uint64_t actual = hash_64_fnv1a_const(art_data.data(), art_data.size());
return static_cast<int>(actual);
}
Очередная дрисня http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1040r0.html в крестоговне, теперь можно через std::embed прочитать какое-то говно и даже в constexpr с ним что-то делать, например считать хеш-сумму. Можно constexpr-компилятор сделать, который бы читал код через std::embed и через constexpr хуиту его обрабатывал и компилировал. Скажите им еще про миксины из D