¿Por qué no puedo mover std :: unique_ptr dentro de lambda en C ++ 14?

Quiero pasar un puntero sin procesar dentro de lambda, pero no quiero que se filtre, si no se invoca el lambda. Se parece a esto:

void Clean(std::unique_ptr<int>&& list);

void f(int* list) {
  thread_pool.Push([list = std::unique_ptr<int>(list) ] {
    Clean(std::move(list));  // <-- here is an error.
  });
}

Me sale un error en Clang 3.7.0:

error: el enlace de referencia al tipo 'unique_ptr <[2 * ...]>' a un valor del tipo 'unique_ptr <[2 * ...]>' elimina los calificadores

Pero no veo ningún calificador en primer lugar, especialmente caído.

Además, encontré similarreporte en la lista de correo, pero sin respuesta.

¿Cómo debo modificar mi código para que se compile y funcione como lo espera la semántica?

Respuestas a la pregunta(1)

Su respuesta a la pregunta