E2065 L'utilisation du symbole d'espace de nommage 'symbole' crée un conflit avec un intrinsèque du même nom (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Erreurs et avertissements du compilateur (C++) - Index

Si vous définissez une fonction dans un espace de nommage dont le nom peut être remplacé par un appel à un intrinsèque quand -Oi est activé, vous ne pouvez pas avoir une déclaration "using" qui fait référence à ce membre.

Par exemple, des appels à "strcmp" sont remplacés par l'intrinsèque "__strcmp__" quand -Oi est activé. Cela signifie que la déclaration "using N::strcmp;" devient "using N::__strcmp__", puisque le remplacement de token intervient avant que l'analyseur du compilateur ne puisse voir les tokens.

Dans ce cas, une erreur s'affiche car le compilateur ne sait pas comment traiter "N::__strcmp__".