Pregunta

Sé que las salidas plantilla similares en TBB de Intel, además de que no puedo encontrar ninguna aplicación en Google o en la biblioteca Boost.

¿Fue útil?

Solución

Puede encontrar discusiones acerca de esta implementación en función de impulso que hay: http: //lists.boost.org/Archives/boost/2008/11/144803.php

  

> ¿Puede el N2427 - Tipos C ++ atómicas y Operaciones implementarse

     

> sin la ayuda del compilador?

     

No.

     

No necesitan ser intrínsecos si se puede escribir ensamblador (o ensamblador separado-compilado para   el caso), entonces se puede escribir la   operaciones mismos directamente. Tú   incluso podría ser capaz de utilizar C ++ simple   (Asignación por ejemplo, simplemente para la carga   o tienda). La razón por la que necesita   compilador de soporte está impidiendo   optimizaciones inapropiados: atómica   operaciones no se pueden optimizar, y   en general, no debe ser reordenado   antes o después de cualquier otra operación.   Esto significa que incluso no atómica   tiendas realizan antes de un atómica   tienda tiene que ser completa, y no puede   almacenarse en caché en un registro (por ejemplo).   Además, las cargas que se producen después de una   operación atómica no puede ser izada   antes de la op atómica. En algunos   compiladores, simplemente utilizando ensamblador   es suficiente. En otros, llamando a una   función externa es suficiente. MSVC   proporciona   _ReadWriteBarrier () para proporcionar el ordenamiento compilador. otros compiladores   necesitará otras banderas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top