Search
Write a publication
Pull to refresh
28
0
Алексей @alex_justes

User

Send message

Извиняюсь, что не по теме, но у вас в нескольких новостях подряд картинки такие, что от них в глазах рябит (как будто для 3d очков)...

Живу в Барселоне, про отключение узнал из этой новости...

Пусть и коллективного, но судя по заголовку я ожидал, что фотография звездного неба была сделана инструментами Curiosity (ну или хотя бы, что марсоход "пальцем" укажет на небо, снятое на Марсе), а здесь фото из земной обсерватории.

Ну то есть не "марсоход показал", а "специалисты объединили два изображения: дневное селфи самого аппарата и снимок звездного неба, полученный земной обсерваторией"

Попробуйте приехать в барселону в пятницу во второй половине дня, посмотрим на Вас в понедельник:)

Живем семьей уже почти 2 года в Барселоне - даже по приезду проблем с магазинами особо не было: сетевые (Carrefour, Mercadana, Caprabo, Ametller и т.д.) работают пн-сб, есть много магазинов (Dia, SuperCor и т.д.), которые работают и в праздники тоже, плюс есть много небольших supermercat, которые и 24 часа могут работать, если что-то захотелось резко купить.

Да, чуть добавилось планирования: купить на неделю вперед продуктов в пятницу/субботу, смотреть на то, как работают некоторые магазины (из-за "сиесты" часть может днём не работать), но никаких проблем купить что-то если уж прямо захотелось нет (и даже доставка есть, и даже сервисы по типу Госуслуг при наличий электронной подписи работают довольно неплохо (да, они здесь раскиданны по разным сайтам, но что-то найти, прочитать и сделать, проблем не вызывает)).

Думаю, что под разнообразным имеется в виду всё-таки сбалансированное (условные КБЖУ + минералы и т.д.).

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

Поэтому это в первую очередь задача человека - составить свой рацион, а вот задачу "следить за наполненностью холодильника" можно этому самому холодильнику и передать.

Кажется примерно это и разбирается в примере?
В том плане, что привычная с виду const функция класса может вернуть не-const внутренний объект. И дальше приводится пример, как это поправить.

Как читатель кода поймет, что перед ним за тип? Достаточно просто, если читатель знает, что такое SB и помнит, что у него нет реализации по умолчанию для пользовательских типов, поэтому надо посмотреть в код/документацию по этому поводу.

Понятно, что со стандартными типами (tuple, pair, array), не надо подменять типы, но с пользовательскими отсутствие const там, где он по идее должен быть, может оказаться весьма неприятным.

P.S.
Для примера замените int& на пустой какой-нибудь класс Bar&, а потом передайте const Foo& в функцию, возьмите от него SB и проверьте, будет ли результат константной ссылкой.
Тут всё несколько сложнее:
компилятор, вероятно, попытается сделать всё, чтобы выбрать более оптимальный вариант вернуть значение, однако, если RVO/NRVO нельзя сделать или нельзя сделать неявный move, то значение будет копироваться (lvalue).

RVO/NRVO сломать очень легко, с неявным move есть как минимум defect report (CWG1579), который его запрещает, если тип функции и тип возвращаемого значения разные (даже если есть возможность сделать move), поэтому в некоторых случаях нужно явно писать move.

Можете посмотреть видео с cppcon, где есть чуть больше примеров: CppCon 2018: Arthur O'Dwyer “Return Value Optimization: Harder Than It Looks”

И поищите подробнее про диагностку у clang, например: -Wreturn-std-move

Рекомендации — это хороший вариант делать всё относительно хорошо в среднем (как минимум код будет работать), но бывает и так, что можно сделать более производительно/правильно, если разобраться, что за всем этим стоит на самом деле.
Фабрики бывают разными. Не скажу, что slicing — это хороший метод для реализаций чего-нибудь, но это используемый метод. Один из примеров вполне используемого кода (некоторая обёртка над сырыми указателями) есть в презентации из статьи (CppCon 2018: Arthur O'Dwyer “Return Value Optimization: Harder Than It Looks”)
А вы заглядывали внутрь boost? Боюсь, если разобраться, как там внутри всё работает, то фильмы ужасов или самое извращенное порно могут начать казаться уже и не такими страшными…
Сам по себе код может быть простым, однако всё усложняется, когда проект становится большим: код пишет сразу целая команда, связи между модулями, библиотеками, опять же легаси (которое или уже было или появляется со временем)…

Да даже свой собственный код через некоторое время становится сложным для понимания/вспоминания.

Так что я предпочитаю использовать инструменты, которые как-то автоматизируют процесс, руками, конечно, хорошо, но, через некоторое время, это становится слишком «дорого».
Сосредоточен и внимателен только до тех пор, пока код не становится достаточно большим и сложным, чтобы не помещаться целиком в когнитивные ресурсы...)
Как уже правильно заметили — это вполне себе рабочая практика. К тому же move — это, по сути, просто способ передать владение каким либо ресурсом без особых накладных расходов, и таким ресурсом как раз может быть что-нибудь общее, что как-то особенно считается в наследнике, например.
На самом деле на Гознаке есть системы автоматического контроля качества печати (непропечатки, неприводки и т.д.):
http://binsys.ru/manufac/

Там и листовой контроль и проверка каждой купюры.
Если бы вместо Гарри был Корвин, он бы нашел, что можно использовать в качестве пороха в Хогвартсе.
И не просто величины, а ещё методология тестирования и графики.
В aur есть бинарные пакеты (проприетарщина, например, да и вроде нет каких-то ограничений на содержимое пакета).
Примеры: clion, gitkraken, skypeforlinux-bin и т.д.
Начните с курса Machine-learning на coursera. Думаю будет интересно и полезно.
1

Information

Rating
6,477-th
Location
Свердловск, Свердловская обл., Россия
Date of birth
Registered
Activity