История изменений
Исправление JaM, (текущая версия) :
Да не гони, всё верно первый анонимус делает.
handle_as_ptr с его конструктором нужен, чтобы тип был NullablePointer, это требование unique_ptr.
А static_assert проходит, потому что unique_ptr<T,Deleter> хранит не T*, а Deleter::pointer.
Как по мне, так первый анонимус знает толк в извращениях, но мне было б лениво постоянно писать file_descriptor.get().
P.S. Первому анонимусу спасибо, фишку с Deleter::pointer я не знал.
Исправление JaM, :
Да не гони, всё верно первый анонимус делает.
handle_as_ptr с его конструктором нужен, чтобы тип был NullablePointer, это требование unique_ptr.
А static_assert проходит, потому что unique_ptr<T,Deleter> хранит не T*, а Deleter::pointer.
Как по мне, так первый анонимус знает толк в извращениях, но мне было б лениво постоянно писать file_descriptor.get().
Исходная версия JaM, :
Да не гони, всё верно первый анонимус делает. handle_as_ptr с его конструктором нужен, чтобы тип был NullablePointer, это требование unique_ptr. А static_assert проходит, потому что unique_ptr<T,Deleter> хранит не T*, а Deleter::pointer.
Как по мне, так первый анонимус знает толк в извращениях, но мне было б лениво постоянно писать file_descriptor.get().