¿Los constructores son seguros para subprocesos en C ++ y / o C ++ 11?

Derivado de esta pregunta yrelacionado con esta pregunta:

Si construyo un objeto en un hilo yentonces transmítale una referencia / puntero a otro hilo, ¿es un hilo no seguro para que otro hilo acceda al objeto sin un bloqueo explícito / barreras de memoria?

<code>// thread 1
Obj obj;

anyLeagalTransferDevice.Send(&obj);
while(1); // never let obj go out of scope

// thread 2
anyLeagalTransferDevice.Get()->SomeFn();
</code>

Alternativamente: ¿existe alguna forma legal de transmitir datos entre subprocesos que no imponga el orden de la memoria con respecto a todo?más el hilo ha tocado? Desde el punto de vista del hardware, no veo ninguna razón por la que no debería ser posible.

Para aclarar; La pregunta es con respecto a la coherencia del caché, el orden de la memoria y otras cosas. ¿Puede el subproceso 2 obtener y usar el puntero antes de que la vista de la memoria del subproceso 2 incluya las escrituras involucradas en la construcción?obj? Para dejar de citar a Alexandrescu (?)"¿Podrían un diseñador malicioso de CPU y un escritor de compilación colaborar para construir un sistema de conformidad estándar que haga esa ruptura?"

Respuestas a la pregunta(5)

Su respuesta a la pregunta