- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
// Там в стандарт сишки хотят добавить хуйни какой-то
// https://habr.com/ru/company/badoo/blog/503140/
// C2x: будущий стандарт C
// Итак, с опозданием лет на 20 к нам приходят функции strdup и strndup!
#include <string.h>
char *strdup (const char *s);
char *strndup (const char *s, size_t size);
j123123 23.05.2020 23:44 # +1
> Чтобы хоть как-то привести этот балаган к порядку без создания десятков новых ключевых слов, комитет придумал синтаксис-который-будет-управлять-всем. Словом, в следующей версии стандарта принимается синтаксис для указания атрибутов. Пример из предложения:
> Здесь attr1 относится к s1 и s2, attr2 относится к определению struct S, attr3 — к типу struct s1, attr4 — к идентификатору s1, attr5 — к идентификатору s2.
Лучше бы приняли за стандарт хуйню из GCC для атрибутов. Впрочем, похуй.
> Устаревший ещё в 1989 году такой способ объявления параметров функции, как «объявление в стиле K&R» (он же — «когда типы после скобочек указываются», он же — «я не понимаю старый код на C»), будет, наконец, сожжён на костре, а я смогу расслабиться и не следить за своими void-ами.
> Другими словами, больше нельзя будет делать так:
Так уже никто не делает. Такую хуйню можно встретить только во всяком древнем говне, которое при этом обычно переписывается при попадании на глаза.
j123123 23.05.2020 23:45 # 0
Похуй вообще.
> Представление знаковых целых чисел
> Бесконечная, казалось бы, история близка к завершению. Комитет смирился с тем, что единорогов и сказочных архитектур не существует, а программисты на C имеют дело с дополнительным кодом (англ. two's complement) для представления знаковых целых чисел.
> В текущем виде это уточнение немного упростит стандарт, но в перспективе поможет (!) избавиться от «любимого» программистами неопределённого поведения языка — переполнения знакового целого числа.
Похуй вообще №2.
>Реализация одного из положительно оценённых комитетом предложений позволит не указывать лишний раз имена параметров в определениях функций:
int main(int, char *[])
{
/* И никакой перхоти! */
return 0;
}
> Мелочь, но какая приятная!
Похуй вообще №3.
> После долгого, до-о-олгого переходного периода комитет, наконец, решил больше не придуриваться и принять в язык, эм, «новые» ключевые слова: true, false, alignas, alignof, bool, static_assert и другие. Заголовки вроде <stdbool.h> можно будет, наконец, почистить.
Норм. Хотя тоже примерно похуй
j123123 23.05.2020 23:47 # 0
Тоже мне. #define REALLYNULLPTR ((void*)0)
j123123 23.05.2020 23:50 # 0
> Реформа обработки ошибок в стандартной библиотеке
>Обработка ошибок функций стандартной библиотеки — давняя проблема C. Сочетание неудачных решений в ранних версиях стандарта, консервативности комитета и вопросов обратной совместимости не позволяло найти устраивающее всех решение.
>И вот наконец нашёлся герой, готовый предложить решение одновременно разработчикам компиляторов, сверхконсервативному комитету и нам, простым смертным:
> Обратите внимание на атрибут oob_return_errno. Он означает, что из этой функции-шаблона будут сгенерированы следующие функции:
> 1. Возвращающая структуру с флагом ошибки и результатом работы функции (struct {T return_value; int exception_code}).
> 2. Возвращающая результат работы функции и игнорирующая возможные ошибки в аргументах, приводя к неопределённому поведению.
> 3. Завершающая выполнение в случае ошибки в аргументах.
> 4. Заменяющая errno, то есть обладающая привычным поведением.
Слишком сложно. Хуйня какая-то.
j123123 23.05.2020 23:55 # 0
> Ключевое слово typeof уже давно реализовано в компиляторах и позволяет не повторяться при написании кода. Канонический пример:
> Мартин Себор (Martin Sebor), ведущий разработчик из Red Hat и участник Комитета, утверждает, что соответствующее предложение уже находится в работе и почти наверняка будет одобрено.
Тут не только typeof но еще и хуйня https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html так что надо не забыть еще и эту хрень в стандарт затащить.
j123123 23.05.2020 23:57 # +1
> Некоторые языки программирования, в том числе и реализованные на базе Clang и GCC, позволяют привязывать высвобождение ресурсов к лексическим областям видимости переменных или, проще говоря, вызывать какой-то код с выходом программы из области видимости переменной.
> В чистом C нет и никогда не было такой возможности, но компиляторы уже давно реализуют атрибут cleanup(<cleanup function>):
> Роберт Сикорд (англ. Robert Seacord), автор «Effective C» и член комитета, признался, что работает над предложением в стиле ключевого слова defer из Go:
> В приведённом примере функция fclose будет вызвана с аргументами file1 и file2 при любом выходе из тела функции do_something.
Зачем тащить хрень из какого-то Goвна, если есть GNU расширения? Чтоб легче сишникам переходить на Go и Go-шникам на Си?
> Близится революция!
Хуеволюция
guest8 24.05.2020 00:08 # −999
j123123 24.05.2020 00:13 # 0
guest8 24.05.2020 00:15 # −999
j123123 24.05.2020 00:12 # 0
Смотрите какая хуйня: https://govnokod.ru/25526#comment471379 - там кстати и typeof есть.
jojaxon 24.05.2020 01:43 # 0
3.14159265 04.06.2020 17:55 # 0
Но это уже попахивает деструкторами, да.
3.14159265 04.06.2020 17:53 # 0
Зайчатки RAII в сишке.
Ну может какая-то польза и будет. Остальное хуйня нинужная.
Да и это goвнище.
Должен быть autodefer на fopene.
guest8 04.06.2020 17:59 # −999
jojaxon 24.05.2020 01:47 # 0
3.14159265 04.06.2020 17:59 # 0
Что мешает сделать такой struct сейчас, не меняя язык?
guest8 04.06.2020 17:59 # −999
3.14159265 04.06.2020 18:10 # 0
Я вообще не понимаю что c abs не так.
Что так нужен if, что со структом он нужен. Что так питушня, что эдак.
Но если они планируют завезти новые функции, то пусть сделают struct.
>Алсо, к такой структуре хорошо бы завести маттерн патчинг
Да. Лучше бы свищ свой дырявый починили, и сделали по-нормальному.
Паттерн-матчинг в Сишке — это слишком круто чтобы быть правдой.
1024-- 24.05.2020 00:17 # 0
> Похуй вообще №2.
Язык очищают от говна и питушни в поведении по умолчанию. Это же круто, как можно так реагировать? Наконец, можно нормально использовать числа!
Кстати, что там с union и кастами pituz* -> void* -> other_pituz*? Их хоть починили?
j123123 24.05.2020 00:20 # +1
j123123 24.05.2020 00:23 # 0
А что ты там предлагаешь чинить?
1024-- 24.05.2020 18:58 # 0
j123123 24.05.2020 21:17 # +1
3.14159265 04.06.2020 17:57 # 0
Про ECMAScript тоже так говорили.
Итог будет примерно такой же.
3.14159265 04.06.2020 17:48 # 0
> Мелочь, но какая приятная!
Нахуя???
BEKTOPHblu_nETyX 24.05.2020 13:53 # 0
j123123 24.05.2020 00:04 # 0
> Включение двоичных данных из файлов в исполняемый файл — невероятно полезная для всех игроделов возможность :
> Надеюсь, члены комитета понимают, что Хабрасообществу известно место проведения следующего заседания, и эта директива препроцессора будет принята без вопросов.
Игроделов на сишке? Кто на сишке сейчас всерьез делает игры? И почему ресурсы не хранить отдельными файлами? Это скорее нужно чтоб всякую хрень в прошивку впиндюривать удобней было.
В крестах свой std::embed уже https://govnokod.ru/26022 придумали, а тут будет эмбед через препроцессор работать, или все ж на уровне компилятора?
Да и не очень-то сильно нужна такая хуйня, можно объектные файлы из произвольных бинарников генерить https://balau82.wordpress.com/2012/02/19/linking-a-binary-blob-with-gcc/
А еще бинарные блобы в крестоговнео можно через какие-нибудь constexpr-функции прогнать, а у сишки с этим есть ограничения.
jojaxon 24.05.2020 01:46 # 0
BEKTOPHblu_nETyX 24.05.2020 12:54 # 0
j123123 24.05.2020 13:51 # 0
guest8 24.05.2020 13:55 # −999
j123123 24.05.2020 14:01 # 0
Можно и шеллкод с rm -rf сделать. Только это не шеллкод будет, а rm-rfкод
BEKTOPHblu_nETyX 24.05.2020 14:10 # 0
j123123 24.05.2020 14:26 # 0
BEKTOPHblu_nETyX 24.05.2020 14:35 # +1
Я имею ввиду зачем ты это запостил?
j123123 24.05.2020 14:56 # +1
Может не сработать, т.к. хуй его знает, в какую секцию компилятор хуйнет этот data. Нужно еще секцию указывать
BEKTOPHblu_nETyX 24.05.2020 15:01 # 0
ropuJIJIa 24.05.2020 15:48 # 0
http://govnokod.ru/25359#comment458045
j123123 24.05.2020 16:34 # 0
nblXOMAKAKA 27.05.2020 16:28 # 0
• Форматы «ELF» и «PE» позволяют к экзешнику добавлять секции с произвольными именами и с произвольными атрибутами (чтение, запись, исполнимость).
• «Mach-O» позволяет добавлять секции, но с набором атрибутов из шаблона («для кода», «для данных»), да и на название секции там какие-то ограничения. Вроде нужно выбирать название из готовых.
• «a.out» вообще не позволяет добавлять секции, в нём три готовые секции, даже секции для констант нет.
Если «ELF» и «PE» вытеснят остальные форматы, тогда можно будет говорить о стандартизации. А пока всё равно будет куча платформозависимого кода, ифдефы — вот это всё.
BEKTOPHblu_nETyX 27.05.2020 18:29 # 0
MAKAKA 27.05.2020 21:08 # +1
И именно по этому я за
nblXOMAKAKA 27.05.2020 21:44 # 0
MAKAKA 27.05.2020 21:48 # +1
На самом деле не Всегда вся. В v86 может быть Злой Гипервизор:)
nblXOMAKAKA 27.05.2020 22:11 # 0
По веткам травинок карабкалась ловко,
Глядела, как в небе плывут облака…
И вдруг опустилась Большая Рука.
И мирно гулявшую Божью коровку
Засунула в спичечную коробку.
Коровка ужасно сердилась сначала,
Мычала и в стены коробки стучала…
Но тщетно! Забыли о ней в коробке,
Закрыли Коровку в шкафу, в пиджаке.
Ах, как тосковала в коробке бедняжка!
Ей снились лужайка, и клевер, и кашка…
Неужто в неволе остаться навек?!
Коровка решила готовить побег.
Три дня и три ночи рвалась она к цели.
И вот, наконец, вылезает из щели…
Но где же деревья, цветы, облака?
Коровка попала в карман пиджака.
Однако она, не теряя надежды,
Бежит на свободу из душной одежды:
Там солнце, и ветер, и запахи трав…
Но вместо свободы увидела шкаф!
Тоскливо и страшно Божьей коровке.
Опять она в тёмной пустынной коробке.
Вдруг видит: вверху, где вставляется ключ,
Сквозь щёлочку в шкаф пробивается луч!
Скорее на волю! Коровка отважно,
Зажмурясь, штурмует замочную скважину…
И вновь оказалась в глухом коробке
С огромною люстрой на потолке.
Однако Коровка на редкость упряма:
Нашла, где неплотно захлопнута рама…
И вот вылезает она из окна —
Ура! Наконец на свободе она!
И вновь на знакомой лужайке букашка.
Под нею, как прежде, колышется кашка,
Над нею плывут в вышине облака…
Но смотрит на мир осторожно Коровка:
А вдруг это тоже Большая коробка,
Где солнце и небо внутри коробка?!
MAKAKA 27.05.2020 22:19 # 0
MAKAKA 27.05.2020 21:53 # 0
Ну положим засирать диск пользователя тыщей файлов -- не комильфо.
Но в PE есть же секции для говна (ака виндовые ресурсы), нет разве?
Я там когда-то банку сгущиконку хранил
BEKTOPHblu_nETyX 24.05.2020 12:59 # 0
j123123 24.05.2020 13:34 # 0
3.14159265 04.06.2020 18:03 # +1
> [[ oob_return_errno ]]
Яиц взять крестоисключения не хватило. Ума сделать просто struct тоже.
>defer(fclose, file2);
Недодеструкторы. Зачем? Зачем?
Экономии никакой, даже больше кода чем просто в конце вызвать fclose(file2).
guest8 04.06.2020 18:13 # −999
bormand 04.06.2020 18:15 # +1
guest8 04.06.2020 18:18 # −999
bormand 04.06.2020 18:20 # 0
Потому что он не очищается. В нём остаётся мусор до следующего использования этой ячейки или регистра. В сишке вообще ничего не очищается и не освобождается само по себе.
guest8 04.06.2020 18:21 # −999
bormand 04.06.2020 18:22 # 0
А для закрытия файла или освобождения кучи надо что-то позвать. А что именно надо позвать? А хуй знает, никто компилятору это не объяснил. А надо ли звать вообще? Вдруг я хочу оставить файл открытым? И это тоже конпелятору никто не объяснил.
guest8 04.06.2020 18:24 # −999
bormand 04.06.2020 18:31 # 0
Видимо поэтому и добавили ручной defer на отъебись.
guest8 04.06.2020 18:41 # −999
bormand 04.06.2020 18:46 # 0
Да хер знает. Видимо любители портянок их уломали чтобы defer(close) писать рядом с open'ом, а не через 10 экранов...
guest8 04.06.2020 18:48 # −999
bormand 04.06.2020 18:55 # 0
guest8 04.06.2020 20:32 # −999
3.14159265 04.06.2020 20:55 # 0
Надо бы пару вызовов systemd в сишный стандарт прописать.
Это как мем «в конституцию внесут пункт о том что...»
>сложная сишечка не нужна
С11 Enterprise. Поттерингам неудобно писать говна без deferов.
MAKAKA 04.06.2020 21:06 # 0
defer по dbus посылает хендлы в systemd-poold, и там они хранятся.
3.14159265 04.06.2020 20:08 # 0
Скорее любители макросов.
Я могу сделать #define OPEN_FILE()
И немного упростить себе жизнь.
Но зачем? Если можно autodefer в функцию открытия вынести и не петушиться.
bormand 04.06.2020 20:11 # 0
А как? Это ж по сути новое соглашение о вызове получается. Ну либо дополнительная инфа в прототипе. Плюс нужен какой-то способ отменить автодефёр если я хочу этот файл куда-нибудь прикопать или вернуть...
3.14159265 04.06.2020 20:15 # 0
Кстати я не понимаю как будет работать сам defer, пусть даже явный.
Это же внутри функции будет небольшой деструктор. Что для Сишки как-то нетипично.
bormand 04.06.2020 20:16 # 0
3.14159265 04.06.2020 20:22 # 0
>Кстати, а я же могу defer в цикле звать и наоткрывать тыщу файлов?
https://tour.golang.org/flowcontrol/13
Оно в какой-то внутренний стек ложится и срабатывает аки finally.
Просто если они делают магическую питушню, пусть тогда пилят autodefer.
guest8 04.06.2020 20:24 # −999
bormand 04.06.2020 20:25 # 0
3.14159265 04.06.2020 20:25 # 0
Не думал что скажу, но в крестах они хотя бы сделали логично
Desktop 04.06.2020 20:29 # 0
А обычный defer есть в Свифте. Там при попытке присобачить его внутри цикла появлется ворнинг:
'defer' statement before end of scope always executes immediately; replace with 'do' statement to silence this warning
guest8 04.06.2020 20:31 # −999
3.14159265 04.06.2020 20:36 # 0
А теперь везде нужно «пулы» какие-то, «стеки».
3.14159265 04.06.2020 20:07 # 0
Так же как «исключения» на [[ oob_return_errno ]] struct {T return_value; int exception_code}
И «шаблоны» на препроцессоре.
bormand 04.06.2020 20:09 # 0
Т.е. там только инт можно приклеить как out-of-band данные?
3.14159265 04.06.2020 20:13 # 0
Латентные крестухи спалились.
3.14159265 04.06.2020 20:20 # 0
В т.ч. возврат нескольких переменных.
Иначе питущня.
guest8 04.06.2020 20:25 # −999
3.14159265 04.06.2020 20:26 # 0
guest8 04.06.2020 20:29 # −999
3.14159265 04.06.2020 20:34 # 0
На одно полезное изменение (typeof), 3 ни о чём, 3 вредных, и 3 безумных.
guest8 05.06.2020 04:02 # −999
guest8 05.06.2020 04:11 # −999
jojaxon 05.06.2020 05:24 # 0
MAKAKA 05.06.2020 15:03 # 0
bormand 05.06.2020 05:24 # 0
guest8 05.06.2020 13:34 # −999
gost 05.06.2020 13:42 # +1
Можно, конечно, как Борманд предложил — с «placement new», но это так-то багор: как минимум, тебе потом придётся руками вызывать деструктор.
bormand 05.06.2020 13:51 # 0
guest8 05.06.2020 13:53 # −999
guest8 05.06.2020 13:53 # −999
bormand 05.06.2020 13:56 # 0
gost 05.06.2020 14:10 # +1
guest8 05.06.2020 16:16 # −999
gost 05.06.2020 16:33 # 0
guest8 05.06.2020 16:40 # −999
gost 05.06.2020 16:45 # +1
Конечно, можно было бы «для простоты» ввести неинициализированное состояние объекта, но если копнуть поглубже — такие багрища вылезут, что копирование-перемещение покажется простым и понятным механизмом.
guest8 05.06.2020 16:48 # −999
gost 05.06.2020 16:55 # 0
Только вызывать деструктор, как я выше писал, придётся руками, потому что компилятор в общем случае не сможет доказать, что петуха мы инициализировали:
MAKAKA 05.06.2020 17:31 # 0
Я имел ввиду ситуацию, когда я
* выделил место на стеке
* попросил кого-то другого заполнить его объектом.
bormand 05.06.2020 17:34 # +1
Поэтому крестовый вариант с "лишним" дефолтным конструктором не так уж и плох. А в очевидных кейсах компилятор его выбросит.
MAKAKA 05.06.2020 18:22 # 0
В джаве кстати тоже модно случайно светануть неинициализированной переменной, если случится leak of this.
Desktop 05.06.2020 19:34 # 0
MAKAKA 05.06.2020 19:36 # 0
Кстати, а в ObjC можно было сделать alloc, а потом передать объект дальше, чтобы ему сделали init в другом месте?
Desktop 05.06.2020 19:46 # 0
'self' used in method call 'doAll' before all stored properties are initialized
В Objc init это обычный метод, там не было отдельных конструкторов, можешь его назвать, как угодно и вызвать, где угодно.
MAKAKA 05.06.2020 19:49 # 0
Выходит, что в ObjC выделение памяти и заполнение её данными разделено by design, понятно
Desktop 05.06.2020 19:57 # 0
Что касается обж си, то надо конечно сделать уточнение, что init это метод NSObject, потому он так или иначе есть в (практически?) любом классе на обж си.
Ещё есть new: Allocates a new instance of the receiving class, sends it an init message, and returns the initialized object.
guest8 05.06.2020 19:54 # −999
gost 05.06.2020 17:40 # 0
MAKAKA 05.06.2020 18:14 # +1
.
Ну по сути я отказался от любой автоматической хуйни, и сам себе злобный буратин.
Забавные эти ваши плюсы, чего там только нету
лучше тока было сразу кастануть, и в инициализтора принимать уже указатель на петуха
тае понятнее
guest8 05.06.2020 18:38 # −999
gost 05.06.2020 19:14 # 0
Не, не завезли. Только ручками сначала звать деструктор, а потом удалять память (по указателю того типа, который изначально создавался через new).
MAKAKA 05.06.2020 19:17 # 0
gost 05.06.2020 19:19 # 0
guest8 05.06.2020 19:29 # −999
gost 05.06.2020 19:52 # 0
> Кстати, alignof разве не должен совпадать с sizeof на x86?
Дык в «x86» нет никаких «struct»/«class», там только байты/слова/двойные слова/четверные слова.
guest8 05.06.2020 19:56 # −999
gost 05.06.2020 19:58 # 0
Не знаю, я не настолько глубоко погружался в x86. Но в общем-то звучит логично.
Впрочем, конкретно с крестами это не работает: в них выравнивание по Стандарту может быть только степенью двойки (включая нулевую степень — для char).
TEH3OPHblu_nemyx 05.06.2020 21:24 # 0
MAKAKA 05.06.2020 21:26 # 0
5 байт лучше хранить в ящичках по 8.
100 байт лучше хранить в 128.
100500 правда хз в чем хранить
guest8 05.06.2020 21:36 # −999
gost 05.06.2020 21:37 # 0
В 131072.
TEH3OPHblu_nemyx 05.06.2020 21:40 # 0
gost 05.06.2020 21:42 # 0
TEH3OPHblu_nemyx 05.06.2020 21:51 # 0
gost 05.06.2020 21:53 # 0
MAKAKA 05.06.2020 22:15 # 0
Чем глубже в жопу -- тем больше дыры между степенями двойки, и больше оверхед.
В чем мне хранить четырегигабайта и один байт?
gost 05.06.2020 22:21 # 0
guest8 06.06.2020 01:37 # −999
TEH3OPHblu_nemyx 06.06.2020 01:16 # 0
guest8 05.06.2020 22:07 # −999
TEH3OPHblu_nemyx 05.06.2020 22:13 # 0
guest8 05.06.2020 22:05 # −999
3.14159265 04.06.2020 20:05 # 0
Только кода больше.
>defer(fclose, file2);
>fclose(file2);
guest8 24.05.2020 16:02 # −999
BEKTOPHblu_nETyX 24.05.2020 16:48 # 0
ropuJIJIa 24.05.2020 17:22 # 0
j123123 24.05.2020 17:22 # 0
ropuJIJIa 24.05.2020 17:30 # 0
http://safereactor.cc/post/989837
BEKTOPHblu_nETyX 27.05.2020 17:08 # 0
Русня букнула!
Psionic 25.05.2020 01:13 # 0
А пространств имен в и операторов типа new/delete в си так и не добавили, что жаль.
KOPOHABuPYC 27.05.2020 00:32 # 0
3.14159265 27.05.2020 14:45 # 0
>>habr.com/ru
>>company/badoo
Да сишка фуфло.
В стандарт никак не завезут функции, чтобы поставить like какой-то нибудь инстаграмной курице.
guest8 27.05.2020 14:54 # −999
bormand 27.05.2020 14:57 # +1
guest8 27.05.2020 14:59 # −999
bormand 27.05.2020 15:22 # +1
MAKAKA 27.05.2020 15:26 # 0
я чото думал, что это тока в линуксе е
3.14159265 27.05.2020 15:12 # 0
Царь показывал:
nblXOMAKAKA 27.05.2020 15:28 # +1
MAKAKA 27.05.2020 15:29 # +1
Сплошной O(1). Супероптимальный язык
TEH3OPHblu_nemyx 05.06.2020 02:49 # 0
https://govnokod.ru/24496
1024-- 27.05.2020 16:14 # 0
Если почитать интернеты, хороший программист - это пердоля, который знает все кишки процессора, знает все реализованные в библиотеках алгоритмы, не признаёт скриптушню, динамическую питуизацию, ГЦ и другие удобства.
Только не все решаются сказать, что пердоля тратит дофига денег конторы за то, что закатывает Солнце руками. Программистов, пользующихся удобными инструментами, пердоля называет анскильными питушками. Но это не со зла, это из-за банальной зависти. Пока скриптушок дописывает десятую программу, а девятая уже приносит прибыль конторе, пердоля реализует мапу по памяти. Пока скриптушок обкатал прототипы и переписывает самый медленный скрипт на С++, пердоля только мечтает о том, чтобы победить десяток багов.
guest8 27.05.2020 16:19 # −999
3.14159265 04.06.2020 01:13 # 0
И правильно делает.
>Но это не со зла, это из-за банальной зависти.
Конечно не со зла. С жалости.
>Пока скриптушок дописывает десятую программу
https://www.npmjs.com/package/is-eq-ten
Сишники пишут libfoo, которую интегрируют в сотни проектов.
guest8 04.06.2020 01:26 # +5
TEH3OPHblu_nemyx 04.06.2020 02:08 # 0
MAKAKA 04.06.2020 02:20 # +4
Вызываешь пирдолинг-инженера, и он решает все проблемы.
Отличная идея для стартапа, кстати
1024-- 15.11.2020 14:03 # 0
Модули питона должен устанавливать админ. Уметь состыковывать имеющиеся разношёрстные модули и создавать свой код - это разная работа разных людей.
bormand 17.11.2020 02:57 # +2
Именно после таких вот принцесс, которым лишь бы код нахуярить, а как это в проде запускаться будет пусть админ пердолится, и появилась культура девочек-собачек.
MAKAKA 17.11.2020 10:56 # 0
CHayT 17.11.2020 13:37 # 0
defecate-plusplus 17.11.2020 11:06 # +2
3.14159265 04.06.2020 18:08 # 0
KOPOHABuPYC 04.06.2020 20:36 # 0
3.14159265 04.06.2020 21:06 # 0
Я же говорю: ахтунг, ахтунг! Крестухи в комитете.
bormand 04.06.2020 21:18 # 0
А название руками манглить?
TEH3OPHblu_nemyx 04.06.2020 21:19 # +1
TEH3OPHblu_nemyx 04.06.2020 21:22 # 0
3.14159265 04.06.2020 21:24 # +1
bormand 04.06.2020 21:25 # 0
TEH3OPHblu_nemyx 04.06.2020 21:29 # 0
3.14159265 04.06.2020 21:35 # 0
TEH3OPHblu_nemyx 04.06.2020 21:28 # +1
К слову, автовывод типов и неявные преобразования типов в крестах тоже односторонние.
3.14159265 04.06.2020 21:31 # +1
Ага. А когда хочешь написать без типа, валится ошибка
<stdin>:1:15: error: ISO C++ forbids declaration of ‘f1’ with no type [-fpermissive]
TEH3OPHblu_nemyx 05.06.2020 03:39 # 0
Нашёл вот это: https://github.com/mooware/msvcfilt
«A similar tool, undname.exe, is already part of the Visual C++ build tools. I only became aware of undname after I had developed msvcfilt, otherwise I probably would have just used undname.»
Какой багор )))
TEH3OPHblu_nemyx 05.06.2020 03:48 # 0
А в обратном направлении, похоже, умеет только компилятор...
guest8 05.06.2020 03:51 # −999
TEH3OPHblu_nemyx 05.06.2020 04:01 # 0
TEH3OPHblu_nemyx 05.06.2020 03:59 # 0
https://clang.llvm.org/doxygen/classclang_1_1MangleContext.html
TEH3OPHblu_nemyx 05.06.2020 04:03 # 0
https://blog.oakbits.com/how-to-mangle-and-demangle-a-c-method-name.html