Pull to refresh
62
0
Дмитрий Пономарев @dm_frox

Программист

Send message

Спасибо! Разберусь чуть попозже.

Нашел ошибку в своих тестах. Теперь все примеры компилируются. Подправил статью, раздел 4.7. Еще раз спасибо.

Спасибо! С параметрами функций, возвращаемом значении функции, а также с объявлениями переменных и псевдонимов все в порядке, это я не трогал. Но вот неполные объявления аргументы шаблона удалил, в моем компиляторе MSVC это не работает, скорее всего ошибка компилятора, возможно в других компиляторах работает, но я не проверял.

У меня вообще какая-то чертовщина. Пример не компилируется, но компилируется такой код:
namespace F {
void g(){
std::unique_ptr ptry;
Y* y = new Y();
ptry.reset(y);
}
Y y;
}

Класс Y нигде не определен. То есть компилятор сгенерировал некий пустой класс Y в namespace F. У меня компилятор MSVC. Про шаблоны уберу.

Добавил раздел на эту тему. Если интересно посмотрите раздел 4.7. Еще раз спасибо!

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

Спасибо! Не знал про такой вариант. Думаю, для полноты надо добавить в статью раздел с описанием этой ситуации.

Да, это так. Я сам сильно удивился, когда прочитал об этом в [Meyers1]. Согласен, что пользы от этого не много, практичнее использовать ссылку.
Термин «Интеллектуальный указатель» (smart pointer) используется в переводах книг по С++ издательств «И.Д. Вильямс», «Диалектика». Именно они перевели и издали самые известные работы Скотта Мейерса, Герба Саттера и других гуру С++ (например [Meyers2]). Я как-то привык именно к этому варианту.

Спасибо! У меня из железа только Интеловская встроенная графика, поэтому я этот вариант не исследовал.

К сожалению, у меня нет никакого опыта работы с bluray, нет аппаратуры. Единственно, что я могу сказать это то, что в списке протоколов есть bluray, то есть надежда, что ffmpeg сможет прочитать есть. Ну а если сможет прочитать, то вывести - это дело техники. Одно из достоинств ffmpeg - это то, что он не прекращает поддержку старых технологий. Можно попробовать использовать VLC Player, он "сидит" на ffmpeg.

Да, это вариант и неплохой. Здесь мы в очередной раз сталкиваемся с ситуацией, когда в C++ одна и та же цель достигается несколькими способами и наилучший вариант далеко не всегда очевиден. Достоинства const_cast в том, что он "режет глаз", его можно аккуратно инкапсулировать и контролировать, а mutable потенциально влияет на неопределённое количество кода.

Мне кажется, что это рассуждение слишком абстрактно, конкретные задачи могут все поставить на свои места. Главное, чтобы программист знал возможные варианты решения и мог выбрать оптимальные для конкретного случая.

Да, конечно, константность и многопоточность тесно связаны, доступ к константам безопасен из нескольких потоков. Наверное я недостаточно акцентировал на этом моменте, есть только маленький раздел 3.5. Возможно, внесу поправки.

И еще есть семейство set контейнеров, в которых всегда возвращаются константные итераторы, см. раздел 4.2. Там же пример использования const_cast .

Мне кажется, что константное rvalue (для которых будет выбрана версия const &&) появляется только в одном случае, когда это rvalue является вызовом функции, возвращающей константу. Подобную ситуацию я описал в разделе 5.2.

Для неконстантного контейнера по правилам перегрузки вызовется неконстантная версия этих функций, которые возвращают обычный итератор и вы можете модифицировать элементы контейнера. Для константного контейнера по правилам перегрузки вызовется константная версия этих функций, которые возвращают константный итератор и вы НЕ можете модифицировать элементы контейнера. В C++11 появились сbegin(), сend() и т.д., которые возвращает константный итератор всегда и вы НЕ можете модифицировать элементы контейнера.

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

Большие константные объекты на стеке тоже создают не часто. Чаще всего их располагают в статической памяти.

Спасибо, упустил этот момент. Подумаю, как скорректировать статью.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity