¿Cómo construir un c ++ fstream a partir de un descriptor de archivo POSIX?

Básicamente estoy buscando una versión C ++ de fdopen (). Investigué un poco sobre esto y es una de esas cosas que parece que debería ser fácil, pero resulta ser muy complicado. ¿Me estoy perdiendo algo en esta creencia (es decir, es realmente fácil)? Si no, ¿hay una buena biblioteca en algún lugar para manejar esto?

EDITAR: moví mi solución de ejemplo a una respuesta separada.

Respuestas a la pregunta(7)

Su respuesta a la pregunta