¿Se puede usar unique_lock con un recursive_mutex?

Según elesta, unique_lock puede usarse para bloqueo recursivo declarando unstd::unique_lock<std::recursive_mutex>, y de hecho eso compila bien.

Sin embargo, al examinar el código (gcc 4.8.2 y 4.9.0) parece queunique_lock no difiere de_Mutex.lock, sino que implementa el método de bloqueo en sí:

  void
  lock()
  {
if (!_M_device)
  __throw_system_error(int(errc::operation_not_permitted));
else if (_M_owns)
  __throw_system_error(int(errc::resource_deadlock_would_occur));
else
  {
    _M_device->lock();
    _M_owns = true;
  }

Claramente, esto evita el bloqueo recursivo de la exclusión mutua y, de hecho, intentar bloquear recursivamente arroja elresource_deadlock_would_occur excepción.

¿Me estoy perdiendo algo aquí, es un error o la documentación de unique_lock está mal?

TIA !!!

Respuestas a la pregunta(1)

Su respuesta a la pregunta