Как человек, который (в студенчестве) работал в "Макдональдс", я сообщаю вам что вы неправы. Туалеты чистятся по графику, а если человек прямо сейчас не занят вообще, кого-нибудь стараются отправить на перерыв или сделать то что всё равно надо будет сделать (пополнить запасы стаканов/салфеток на кассах, в таком духе). Придумывания объективно ненужной работы лично я не наблюдал.
Частное свидетельство: я так приходил. (Правда тикет был - сделать proof-of-concept из определённых штук, а не править существующий проект, но всё же...)
И на первый взгляд этого достаточно, чтобы уверенно заявить: код выше приведет к UB, если к моменту вызова push_back выполняется утверждение size() == capacity().
Нет. Код выше эквивалентен:
int& ref = v.back();
//в этот момент ref - валидная ссылка
v.push_back(ref); //А _после_ вызова - невалидная
Понятие "после" (sequenced-after) довольно хорошо формализовано в стандарте.
То что бедной реализации необходимо учесть что валидная ссылка может быть и на память, прямо или косвенно управляемую this - проблемы этой реализации, точно так же как случай присваивания объекта самому себе в operator=() и тому подобные штуки.
Задача о разборчивой невесте - про выбор одной головой без возвращения, здесь перспективнее RLHF: HR берёт пять пар резюме, оценивает какое и насколько "лучше" в каждой паре. Приходит к тимлиду, говорит оценки. Тимлид смотрит на те же пары и говорит свои, потом объясняет почему они разошлись. Если стопка резюме очень большая, повторить ещё пару раз. Затем так обученный HR отбирает лучшие 2N резюме из стопки, тимлид сокращает их до лучших N, последние приглашаются на собеседование.
C++ в рантайме код не компилирует, а типы в смысле реализации настолько разные, что один и тот же код шаблонной функции при двух разных параметрах, кажется, может не иметь вообще ни одной общей инструкции.
Это немного легче увидеть, если смотреть со стороны реализации: вызов виртуальной функции требует знать её смещение в таблице виртуальных функций, разные единицы кода (.cpp-файлы) компилируются независимо, следовательно если бы компилятор наткнулся на инстанцирование шаблонной виртуальной функции типом, объявленном в том же модуле, смещение ему было бы взять неоткуда.
Тогда в разных частях неба мы бы видели звёзды (пульсары, квазары) с одинаковыми характеристиками, аналогично гравитационному линзированию; этого не наблюдается.
Идея, мягко говоря, спорная. Уоттс отталкивался от «Быть никем» Метцингера, но те клинические случаи, на которых построена гипотеза, могут быть проинтерпретированы и иначе (для сравнения — см. «Дуэль нейрохирургов» Сэма Кина, которая, в частности, тоже обсуждает опыт с принятием решения и отметкой времени).
Простейшее соображение против такой гипотезы — отсутствие в истории нейрофизиологии пациентов, не находящихся в глубоком оглушении (т.е. допускающих взаимодействие) и при этом не имеющих чувства «я», эдаких травматических шифровиков. Не представлять какой сейчас год — возможно, считать себя мёртвым — возможно, быть неспособным отличить жену от шляпы — возможно, а вот не понимать что есть такая сущность «я» — о таком, вроде, не слышали.
Чуть более философски, всякая формальная система неполна, и, по всей видимости, способность к рефлексии в той или иной форме необходима для понимания самого факта этой неполноты. Для «линейного», лишённого рефлексивных петель мышления можно представить задачу, которую невозможно решить — но и невозможно сделать вывод о её неразрешимости, так себе качество для решения задач, которые ставят межпланетные перелёты.
Как человек, который (в студенчестве) работал в "Макдональдс", я сообщаю вам что вы неправы. Туалеты чистятся по графику, а если человек прямо сейчас не занят вообще, кого-нибудь стараются отправить на перерыв или сделать то что всё равно надо будет сделать (пополнить запасы стаканов/салфеток на кассах, в таком духе). Придумывания объективно ненужной работы лично я не наблюдал.
Частное свидетельство: я так приходил. (Правда тикет был - сделать proof-of-concept из определённых штук, а не править существующий проект, но всё же...)
Нет. Код выше эквивалентен:
Понятие "после" (sequenced-after) довольно хорошо формализовано в стандарте.
То что бедной реализации необходимо учесть что валидная ссылка может быть и на память, прямо или косвенно управляемую
this
- проблемы этой реализации, точно так же как случай присваивания объекта самому себе вoperator=()
и тому подобные штуки.Завершение истории: подарок прислан и получен. Моя благодарность компании РСХБ.цифра.
4 - 533. (also: 1000 км до рынка? В оригинале это была пустыня...)
Задача о разборчивой невесте - про выбор одной головой без возвращения, здесь перспективнее RLHF: HR берёт пять пар резюме, оценивает какое и насколько "лучше" в каждой паре. Приходит к тимлиду, говорит оценки. Тимлид смотрит на те же пары и говорит свои, потом объясняет почему они разошлись. Если стопка резюме очень большая, повторить ещё пару раз. Затем так обученный HR отбирает лучшие 2N резюме из стопки, тимлид сокращает их до лучших N, последние приглашаются на собеседование.
Это немного легче увидеть, если смотреть со стороны реализации: вызов виртуальной функции требует знать её смещение в таблице виртуальных функций, разные единицы кода (.cpp-файлы) компилируются независимо, следовательно если бы компилятор наткнулся на инстанцирование шаблонной виртуальной функции типом, объявленном в том же модуле, смещение ему было бы взять неоткуда.
Простейшее соображение против такой гипотезы — отсутствие в истории нейрофизиологии пациентов, не находящихся в глубоком оглушении (т.е. допускающих взаимодействие) и при этом не имеющих чувства «я», эдаких травматических шифровиков. Не представлять какой сейчас год — возможно, считать себя мёртвым — возможно, быть неспособным отличить жену от шляпы — возможно, а вот не понимать что есть такая сущность «я» — о таком, вроде, не слышали.
Чуть более философски, всякая формальная система неполна, и, по всей видимости, способность к рефлексии в той или иной форме необходима для понимания самого факта этой неполноты. Для «линейного», лишённого рефлексивных петель мышления можно представить задачу, которую невозможно решить — но и невозможно сделать вывод о её неразрешимости, так себе качество для решения задач, которые ставят межпланетные перелёты.