Очень желтый перевод.
Очень желтый заголовок.
С только что созданного аккаунта.
Что наводит на определенные мысли.
Однако.
Если уважаемый Stefan Oelrich прямым текстом говорит "the mRNA vaccines are an example for that cell & gene therapy", почему каждый первый факт-чекер ([1], [2], [3]) не менее прямым текстом утверждает, что это ну совсем не так?
Я, если что, за прогресс и за вакцинацию, но такой разброд и шатания в формулировках только подкармливают конспирологов.
Иронично: сторонники атомной энергетики, не желающие пользоваться услугами крупнейшего термоядерного реактора в радиусе нескольких световых лет от Земли
Я не настоящий сварщик, но это выглядит как два поиска в коллекции там, где можно было обойтись одним, если бы set_at возвращала указатель на то, что вставила.
В этом и проблема — авторы пропозала не понимают его сути и натягивают сову на глобус, подавая 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.
напечатать моноширинный текст в прямоугольную сетку — это повод для диссертации?!
Увы, не только напечатать, не совсем моноширинный текст и не совсем в прямоугольную сетку.
Прототип, резво и более-менее адекватно что-то печатающий, действительно, можно написать за выходные, но добиваться, чтобы в нем адекватно работал весь существующий зоопарк (точнее, два зоопарка — posix и win32) можно еще лет десять, при этом с грустью наблюдая, как поддержка каждой легаси фичи роняет вам фпс примерно вдвое.
Сначала люди годами рассказывают, что дженериков нет, потому что они не нужны, а если вам нужны, то вы не понимаете великий замысел. Теперь, видимо, будут переобуваться на лету.
Ждем exceptions, assertions, threads и что там дальше по списку.
Возможны два варианта:
— хитрейший замысел, что функция имеет побочные эффекты и ее надо вызывать всегда и кто-то решил все написать в одну строку, причем сделав вызов функции вторым операндом, полагаясь на отсутствие short-circuit в бинарном & и на implicit conversion в bool.
— банальная опечатка или незнание, что & != &&.
Либо повреждение памяти. И тут никаким местом плюсы не являются адекватным языком. Он не предоставляет никаких средств для работы с ними в отличии от сравниваемых Go и Rust.
А что именно имеется в виду под «работой»?
Восстановление после повреждения памяти? Как-то сомнительно, можно примеры?
Или все же предотвращение повреждений памяти в некоторых случаях за счет ограничений количества способов отстрелить ногу?
Случай №9 — прекрасная иллюстрация того, что operator== должен уметь генерироваться компилятором, и то, что это добавили только сейчас — это какой-то позор.
В этом месте, обычно, до всех начинает доходить очевидное… Что с того, что у носителя есть деньги/язык? Ему всё досталось от предков даром, просто по факту рождения. Весь его опыт — это опыт ВЛАДЕНИЯ деньгами/языком. А вас интересует опыт ПРИОБРЕТЕНИЯ языка/денег.
Это прекрасная аналогия, единственная проблема — она неправильная.
Носитель язык знает, а учитель — думает (или вообще говорит), что знает. У вас нет никакой возможности это проверить, только верить на слово.
Продолжая аналогию с миллиардерами, «учитель равной квалификации» — это не «обыкновенный парень, который СТАЛ миллиардером». Это автор книжек «как стать миллиардером», о финансовом состоянии которого вы не имеете ни малейшего понятия.
Что может посоветовать вам князь Монако из реалий его жизни, что вы сможете потом применить к реалиям вашей жизни? «Нет хлеба, кушайте пирожные»???
Например, он может посоветовать вам не кушать руками, не класть локти на стол и не ковыряться в разных отверстиях своего организма во время беседы. А скоробогатый носитель малинового пиджака на такие мелочи может как не обратить внимания, так и вообще не понимать, а чо тут такова.
Аналогично, носитель может рассказать вам, как не получить по лицу, употребляя в беседе такие простые слова как beach, can't и sheet, в то время как не-нейтиву все эти ɪ / iː и ʌ / ɑː, как правило, до лампочки, он лучше будет полгода погружаться в тонкости future perfect continuous tense.
Многие нейтивы до сих пор путают there, they’re и their. Что уж говорить о студентах, которые учат английский как второй.
Студент как раз there/they’re/their не перепутает, т.к. сначала их видит в книжке, а уже потом слышит и произносит, в отличие от нейтивов, у которых совсем наоборот.
Очень желтый перевод.
Очень желтый заголовок.
С только что созданного аккаунта.
Что наводит на определенные мысли.
Однако.
Если уважаемый Stefan Oelrich прямым текстом говорит "the mRNA vaccines are an example for that cell & gene therapy", почему каждый первый факт-чекер ([1], [2], [3]) не менее прямым текстом утверждает, что это ну совсем не так?
Я, если что, за прогресс и за вакцинацию, но такой разброд и шатания в формулировках только подкармливают конспирологов.
Любителей такого стиля можно посылать сюда, с аргументом «it's in the book»:
Почему-то при первом прочтении показалось, что речь о расстоянии до самого реактора, которое немного меньше.
Световых чего-чего?
Я не настоящий сварщик, но это выглядит как два поиска в коллекции там, где можно было обойтись одним, если бы set_at возвращала указатель на то, что вставила.
В этом и проблема — авторы пропозала не понимают его сути и натягивают сову на глобус, подавая 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
мог бы немного улучшить ситуацию, если бы его предлагали в авторском дизайне, но увы:10. gskvulkanimage.c
8. bug34427.c
7. pe_identify_machine.c
6. master.c
5. args.c
Увы, не только напечатать, не совсем моноширинный текст и не совсем в прямоугольную сетку.
Прототип, резво и более-менее адекватно что-то печатающий, действительно, можно написать за выходные, но добиваться, чтобы в нем адекватно работал весь существующий зоопарк (точнее, два зоопарка — posix и win32) можно еще лет десять, при этом с грустью наблюдая, как поддержка каждой легаси фичи роняет вам фпс примерно вдвое.
Сначала люди годами рассказывают, что дженериков нет, потому что они не нужны, а если вам нужны, то вы не понимаете великий замысел. Теперь, видимо, будут переобуваться на лету.
Ждем exceptions, assertions, threads и что там дальше по списку.
Оно же макросы подсвечивает другим цветом, что там искать 2 часа?
3 аргумента это всего 6 комбинаций…
Возможны два варианта:
— хитрейший замысел, что функция имеет побочные эффекты и ее надо вызывать всегда и кто-то решил все написать в одну строку, причем сделав вызов функции вторым операндом, полагаясь на отсутствие short-circuit в бинарном & и на implicit conversion в bool.
— банальная опечатка или незнание, что & != &&.
Бритва Хэнлона же.
А что именно имеется в виду под «работой»?
Восстановление после повреждения памяти? Как-то сомнительно, можно примеры?
Или все же предотвращение повреждений памяти в некоторых случаях за счет ограничений количества способов отстрелить ногу?
Это прекрасная аналогия, единственная проблема — она неправильная.
Носитель язык знает, а учитель — думает (или вообще говорит), что знает. У вас нет никакой возможности это проверить, только верить на слово.
Продолжая аналогию с миллиардерами, «учитель равной квалификации» — это не «обыкновенный парень, который СТАЛ миллиардером». Это автор книжек «как стать миллиардером», о финансовом состоянии которого вы не имеете ни малейшего понятия.
Например, он может посоветовать вам не кушать руками, не класть локти на стол и не ковыряться в разных отверстиях своего организма во время беседы. А скоробогатый носитель малинового пиджака на такие мелочи может как не обратить внимания, так и вообще не понимать, а чо тут такова.
Аналогично, носитель может рассказать вам, как не получить по лицу, употребляя в беседе такие простые слова как beach, can't и sheet, в то время как не-нейтиву все эти ɪ / iː и ʌ / ɑː, как правило, до лампочки, он лучше будет полгода погружаться в тонкости future perfect continuous tense.
Студент как раз there/they’re/their не перепутает, т.к. сначала их видит в книжке, а уже потом слышит и произносит, в отличие от нейтивов, у которых совсем наоборот.