Как стать автором
Обновить
16
0

Пользователь

Отправить сообщение

Очень желтый перевод.
Очень желтый заголовок.
С только что созданного аккаунта.
Что наводит на определенные мысли.


Однако.
Если уважаемый Stefan Oelrich прямым текстом говорит "the mRNA vaccines are an example for that cell & gene therapy", почему каждый первый факт-чекер ([1], [2], [3]) не менее прямым текстом утверждает, что это ну совсем не так?


Я, если что, за прогресс и за вакцинацию, но такой разброд и шатания в формулировках только подкармливают конспирологов.

много где такой code-style, что enum members — all caps

Любителей такого стиля можно посылать сюда, с аргументом «it's in the book»:
ES.9: Avoid ALL_CAPS names
Reason Such names are commonly used for macros. Thus, ALL_CAPS name are vulnerable to unintended macro substitution.
вставить туда дополнительное слово вроде «freaking» или «fucking»

А можно и тоньше

Спасибо, уже все нравится :)
Почему-то при первом прочтении показалось, что речь о расстоянии до самого реактора, которое немного меньше.
Иронично: сторонники атомной энергетики, не желающие пользоваться услугами крупнейшего термоядерного реактора в радиусе нескольких световых лет от Земли

Световых чего-чего?
FuriRecordDataDict_set_at(furi_record->records, name_str, new_record);
record_data = FuriRecordDataDict_get(furi_record->records, name_str);

Я не настоящий сварщик, но это выглядит как два поиска в коллекции там, где можно было обойтись одним, если бы set_at возвращала указатель на то, что вставила.
Например, std::optional

В этом и проблема — авторы пропозала не понимают его сути и натягивают сову на глобус, подавая expected как улучшенный optional.


Вся суть expected была в unify local and centralized error handling (именно на этот момент ссылается и пропозал, что иронично): нужна локальная обработка ошибки — проверяй и обрабатывай, не нужна — просто используй. Eсли там было исключение, то оно взлетит и будет обработано выше по стеку там, где его ждут.


В том, что предлагается к стандартизации, централизованная обработка безнадежно сломана: разыменование — это UB, а .value() — это не throw E, это throw bad_expected_access<E>, которого выше никто не ждет. Но зато похоже на optional, да.

Без сахара стек сам себя не раскрутит и надо после каждого вызова ручками городить if (result.error) return result;, что ничем не отличается от if (error_code != 0) goto cleanup; в C.


Планируемый std::expected мог бы немного улучшить ситуацию, если бы его предлагали в авторском дизайне, но увы:


Using the indirection operator for an object that does not contain a value is undefined behavior. This behavior offers maximum runtime performance.
Топ-10 ошибок в C++ проектах

10. gskvulkanimage.c
8. bug34427.c
7. pe_identify_machine.c
6. master.c
5. args.c
напечатать моноширинный текст в прямоугольную сетку — это повод для диссертации?!

Увы, не только напечатать, не совсем моноширинный текст и не совсем в прямоугольную сетку.

Прототип, резво и более-менее адекватно что-то печатающий, действительно, можно написать за выходные, но добиваться, чтобы в нем адекватно работал весь существующий зоопарк (точнее, два зоопарка — posix и win32) можно еще лет десять, при этом с грустью наблюдая, как поддержка каждой легаси фичи роняет вам фпс примерно вдвое.
Вышла Beta Go 1.18 с дженериками

Сначала люди годами рассказывают, что дженериков нет, потому что они не нужны, а если вам нужны, то вы не понимаете великий замысел. Теперь, видимо, будут переобуваться на лету.

Ждем exceptions, assertions, threads и что там дальше по списку.
на тот момент я использовал MS Visual Studio 2013 и встроенный в него MSVC-компилятор

Оно же макросы подсвечивает другим цветом, что там искать 2 часа?
*Пожимая плечами*

3 аргумента это всего 6 комбинаций…

void wrapper(bool a, int b, string_view c) { do_something(a, b, c); }
void wrapper(bool a, string_view c, int b) { do_something(a, b, c); }
void wrapper(int b, bool a, string_view c) { do_something(a, b, c); }
void wrapper(int b, string_view c, bool a) { do_something(a, b, c); }
void wrapper(string_view c, bool a, int b) { do_something(a, b, c); }
void wrapper(string_view c, int b, bool a) { do_something(a, b, c); }
Автор задается не теми вопросами.

Возможны два варианта:
— хитрейший замысел, что функция имеет побочные эффекты и ее надо вызывать всегда и кто-то решил все написать в одну строку, причем сделав вызов функции вторым операндом, полагаясь на отсутствие short-circuit в бинарном & и на implicit conversion в bool.
— банальная опечатка или незнание, что & != &&.

Бритва Хэнлона же.
Т.е. теперь ноги в дырявых носках будут торчать с обеих сторон?

image
Либо повреждение памяти. И тут никаким местом плюсы не являются адекватным языком. Он не предоставляет никаких средств для работы с ними в отличии от сравниваемых Go и Rust.

А что именно имеется в виду под «работой»?
Восстановление после повреждения памяти? Как-то сомнительно, можно примеры?
Или все же предотвращение повреждений памяти в некоторых случаях за счет ограничений количества способов отстрелить ногу?
Случай №9 — прекрасная иллюстрация того, что operator== должен уметь генерироваться компилятором, и то, что это добавили только сейчас — это какой-то позор.
В этом месте, обычно, до всех начинает доходить очевидное… Что с того, что у носителя есть деньги/язык? Ему всё досталось от предков даром, просто по факту рождения. Весь его опыт — это опыт ВЛАДЕНИЯ деньгами/языком. А вас интересует опыт ПРИОБРЕТЕНИЯ языка/денег.

Это прекрасная аналогия, единственная проблема — она неправильная.
Носитель язык знает, а учитель — думает (или вообще говорит), что знает. У вас нет никакой возможности это проверить, только верить на слово.

Продолжая аналогию с миллиардерами, «учитель равной квалификации» — это не «обыкновенный парень, который СТАЛ миллиардером». Это автор книжек «как стать миллиардером», о финансовом состоянии которого вы не имеете ни малейшего понятия.

Что может посоветовать вам князь Монако из реалий его жизни, что вы сможете потом применить к реалиям вашей жизни? «Нет хлеба, кушайте пирожные»???

Например, он может посоветовать вам не кушать руками, не класть локти на стол и не ковыряться в разных отверстиях своего организма во время беседы. А скоробогатый носитель малинового пиджака на такие мелочи может как не обратить внимания, так и вообще не понимать, а чо тут такова.

Аналогично, носитель может рассказать вам, как не получить по лицу, употребляя в беседе такие простые слова как beach, can't и sheet, в то время как не-нейтиву все эти ɪ / iː и ʌ / ɑː, как правило, до лампочки, он лучше будет полгода погружаться в тонкости future perfect continuous tense.
Многие нейтивы до сих пор путают there, they’re и their. Что уж говорить о студентах, которые учат английский как второй.

Студент как раз there/they’re/their не перепутает, т.к. сначала их видит в книжке, а уже потом слышит и произносит, в отличие от нейтивов, у которых совсем наоборот.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность