Heim > Backend-Entwicklung > C++ > Können Sie Funktionszeiger mit integrierten Operatoren in C verwenden?

Können Sie Funktionszeiger mit integrierten Operatoren in C verwenden?

Patricia Arquette
Freigeben: 2024-10-25 10:43:02
Original
700 Leute haben es durchsucht

Can You Use Function Pointers with Built-in Operators in C  ?

Können integrierte Standardoperatoren Funktionszeiger haben?

In C können Sie nicht direkt auf Funktionszeiger integrierter Operatoren verweisen, weil Sie stellen eigentlich keine Funktionsobjekte dar. Gemäß dem C 11-Standard sind integrierte Operatoren speziell für die Überlastungsauflösung konzipiert und können nicht für andere Zwecke verwendet werden.

Überwindung der Einschränkung:

So umgehen Dazu können Sie Funktionsobjekte verwenden, die in der Standardbibliothek definiert sind (§20.8). Diese Funktionsobjekte, wie etwa equal_to für Vergleiche, zerfallen in ihrer Funktion „operator()“ in den entsprechenden Operator. Sie können als gültige Argumente für Funktionszeiger dienen.

Zugriff auf Standardklassenoperatoren:

Während integrierte Operatoren nicht direkt zugänglich sind, können Sie Standardbibliotheksoperatoren als verwenden Funktionszeiger. Sie müssen jedoch die entsprechende Vorlageninstanz angeben, um den Compiler zu steuern. Wenn Sie beispielsweise den Operator std::basic_string verwenden möchten, müssen Sie dessen Vorlagentyp explizit wie folgt angeben:

<code class="cpp">typedef std::basic_string<char> string_type;
...
std::cout << test_function<string_type>(a, b, &amp;std::operator+) << std::endl;</code>
Nach dem Login kopieren

Schlussfolgerung:

Obwohl integrierte Operatoren aufgrund ihrer einzigartigen Rolle keine direkten Funktionszeiger haben können, können Sie auf ihre Funktionalität über Funktionsobjekte zugreifen, die von der Standardbibliothek bereitgestellt werden, oder indem Sie die erforderlichen Vorlageninstanzen für Standardklassenoperatoren angeben.

Das obige ist der detaillierte Inhalt vonKönnen Sie Funktionszeiger mit integrierten Operatoren in C verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage