E2065 Bezeichner des Namespace 'symbol' verursacht Konflikte mit der intrinsischen Funktion desselben Namens (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Compiler-Fehler und -Warnungen (C++) - Index

Wenn Sie in einem Namespace eine Funktion definieren, deren Name durch einen Aufruf einer intrinsischen Funktion – wenn '-Oi' aktiviert ist – ersetzt werden könnte, ist eine using-Deklaration, die auf dieses Element verweist, nicht zulässig.

Aufrufe von strcmp werden beispielsweise von einigen intrinsischen Funktionen durch __strcmp__ ersetzt, wenn '-Oi' aktiviert ist. Dies bedeutet, dass die Deklaration "using N::strcmp;" in "using N::__strcmp__" geändert wird, da die Ersetzung des Token ausgeführt wird, bevor der Parser des Compilers auf das Token trifft.

In diesem Fall wird ein Fehler angezeigt, da der Compiler die Verarbeitungsweise von "N::__strcmp__" nicht kennt.