Maison > développement back-end > C++ > Comment alias des fonctions en C 11 ?

Comment alias des fonctions en C 11 ?

DDD
Libérer: 2024-10-23 14:48:45
original
348 Les gens l'ont consulté

How to Alias Functions in C  11?

Aliasing de fonctions en C 11

Bien qu'il soit simple d'aliaser des classes à l'aide d'instructions using, l'aliasing direct de fonctions n'est pas pris en charge par défaut en C . Cependant, il existe des moyens d'y parvenir efficacement.

Considérez le code suivant :

<code class="cpp">namespace bar {
    void f();
}</code>
Copier après la connexion

Pour alias cette fonction, vous pouvez utiliser le transfert parfait comme suit :

<code class="cpp">template <typename... Args>
auto g(Args&&... args) -> decltype(f(std::forward<Args>(args)...)) {
  return f(std::forward<Args>(args)...);
}</code>
Copier après la connexion

Cette solution fonctionne pour alias n'importe quelle fonction, y compris les fonctions surchargées et modèles. Essentiellement, la fonction modèle g transmet les arguments à la fonction d'origine f en utilisant une redirection parfaite.

En faisant cela, vous pouvez remplacer efficacement toute utilisation de bar::f dans votre code par g, produisant des résultats fonctionnellement identiques. Cependant, notez que cette approche ne définit pas une nouvelle fonction portant le nom g mais crée plutôt un wrapper généralisé qui invoque la fonction d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal