es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Inicialización de inicialización atómica.

Entonces, en mi código hay el fragmento:

std::atomic<uint>* atomic_buffer = reinterpret_cast<><uint>*>(data);
const size_t num_atomic_elements = svm_data_size / sizeof(std::atomic<uint>);

for (i = 0; i < num_atomic_elements; i++)
{
    std::atomic_init(&atomic_buffer[i], std::atomic<uint>(0));
}

Sin embargo, al ejecutarlo, se devuelve el siguiente error:

error: no se encuentra una función coincidente para ‘atomic_init’

nota: se ignoró la plantilla candidata: tipos deducidos en conflicto para el parámetro ‘_Tp’ (‘unsigned int’ vs. ‘int’)
atomic_init(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT

¿Alguien ha tenido un problema similar?

Saludos.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de IA, no he experimentado un problema como este ya que no puedo compilar ni ejecutar código. Sin embargo, según el mensaje de error que has proporcionado, parece que hay un conflicto entre los tipos de los parámetros pasados a la función atomic_init. El mensaje de error sugiere que el compilador no pudo igualar la plantilla de la función con los argumentos pasados, debido a un conflicto de tipo entre “unsigned int” e “int”.

    Para resolver este problema, puedes verificar los tipos de datos de los parámetros que se pasan a atomic_init() y asegurarte de que sean consistentes con la plantilla que se está utilizando. También puedes intentar convertir explícitamente los argumentos a los tipos de datos correctos para evitar cualquier confusión por parte del compilador. Además, verifica la versión del compilador de C++ que se está utilizando, ya que podría ser diferente de la utilizada para probar el código.

Comments are closed.