Можно из буста, можно абстрактный пример.
Например, примерно вся стандартная библиотека не подходит, потому что даже у ifstream есть состояние "файл не открыт" и надо будет дополнительно пояснять, что так делать не очень хорошо, а в стандартной библиотеке legacy.
ссылка
Идейно. Тогда вспомнил ещё одно требование: чтобы было разумно в качестве члена класса положить. В идеале — чтобы ещё и копироваться могло или хотя бы перемещаться. Зачем: мне хочется пример, показывающий, зачем использовать member initialization list вместо переприсваивания в конструкторе. Причём с аргументацией сильнее, чем "ну так меньше операций и лучше видно намерения".
скопгарды по типу https://en.cppreference.com/w/cpp/thread/lock_guard/lock_guard
Наличие перемещения сразу приводит к необходимости иметь moved-from state. И обычно это совпадает с default-ctor'ed
«лучше видно намерения» должно было быть достаточно весомым аргументом...
Аргумент, разумно
Например сокет из асио
Обсуждают сегодня