Accueil Finances personnelles Création de vos propres UDL en C ++ - mannequins

Création de vos propres UDL en C ++ - mannequins

Table des matières:

Vidéo: Conférence accessibilite FUN-MOOC /Sciences Po / MFP projet Eiffela 2025

Vidéo: Conférence accessibilite FUN-MOOC /Sciences Po / MFP projet Eiffela 2025
Anonim

de C ++, vous fournir un tableau intéressant de littéraux. Cependant, la valeur réelle des littéraux devient plus évidente lorsque vous créez le vôtre.

Vous pouvez répondre à de nombreux besoins en utilisant des littéraux définis par l'utilisateur (UDL), mais trois besoins courants sont la prise en charge des conversions de données, le traitement des types personnalisés et l'obtention des effets secondaires souhaités sans le nombre habituel de problèmes de codage.

Bien que les littéraux de bibliothèque standard ou standard soient fournis sous forme de préfixe et de suffixe, vous pouvez uniquement créer le formulaire de suffixe lorsque vous définissez vos propres littéraux. En outre, le suffixe doit commencer par un trait de soulignement. Le soulignement permet d'éviter les conflits avec les suffixes existants et de s'assurer que les autres développeurs savent que le littéral est un formulaire personnalisé (non standard).

Développer une conversion UDL

Il est possible d'encapsuler des conversions dans une UDL. Tout ce que vous devez faire une fois que vous créez une telle UDL est de fournir le suffixe approprié lors de la définition de la constante pour obtenir le résultat souhaité. L'exemple CustomUDL01 illustre une technique pour définir une conversion qui modifie l'entrée de rayon à l'aire d'un cercle dans la constante.

#include utilisant l'espace de noms std; constexpr long double opérateur "_circ (long rayon double) {rayon de retour * rayon * 3. 141592;} int main () {double x = 5. 0_circ; cout <<" la zone du cercle est: "<< x << endl; return 0;}

Pour créer l'UDL, l'exemple repose sur un constexpr avec une valeur de retour d'un double long et une valeur d'entrée, radius, d'un double long. est πr 2 Comme vous pouvez le voir, l'exemple effectue le calcul correct dans le cadre du constexpr

Chaque fois que vous créez une UDL personnalisée, le compilateur Cela signifie que vous devez utiliser un double long pour les littéraux en virgule flottante et long pour les littéraux entiers, même si vous choisissez plus tard d'utiliser un type plus petit, comme c'est le cas ici. Par exemple, en déclarant x comme un double, le littéral lui-même doit utiliser le plus grand type possible

Pour déclarer une UDL du nouveau type, l'exemple crée x, qui utilise le suffixe _circ. s le résultat à l'écran. Lorsque vous exécutez cet exemple, vous voyez que la valeur correcte a été placée dans x, comme indiqué ici:

La zone du cercle est: 78. 5398

Développement d'un type personnalisé UDL

Une grande partie du code La rencontre repose sur des types personnalisés difficiles à suivre et à comprendre.Créer une UDL pour simplifier le code rend les choses plus claires et réduit le risque d'erreur. L'exemple CustomUDL02 montre un type personnalisé, l'opérateur utilisé pour créer la bibliothèque UDL, ainsi que la façon dont la bibliothèque UDL est utilisée pour définir un littéral.

#include utilisant l'espace de noms std; struct MyType {MyType (double entrée): Valeur (Entrée) {} double Valeur;}; Opérateur MyType "_mytype (long double Valeur) {return MyType (Valeur);} int main () {auto UDLType = 145. 6_mytype; cout << uDLType. Valeur << endl; return 0;}

Pour cela technique pour fonctionner, vous devez créer un constructeur pour votre type qui accepte le nombre d'entrées requis pour configurer le type Au minimum, le constructeur doit accepter un type ou la valeur d'entrée fournie par l'utilisateur est perdue.

Le type personnalisé a besoin ne prend pas en charge le type de données de même taille requis par l'opérateur, mais doit être du même type Par exemple, vous ne pouvez pas convertir un double long en int.

Lorsque vous exécutez cet exemple, vous voyez une sortie La valeur de 145. 6, qui est la valeur que vous entrez dans le type personnalisé, permet de gérer des configurations assez complexes en utilisant cette approche.L'utilisateur de votre type personnalisé obtient la possibilité de créer un code clair facile à suivre et à interpréter, même lorsque les types sous-jacents sont complexes.

Utiliser un UDL personnalisé pour les effets secondaires

L'un des plus intéressants pour les UDL, créer des effets secondaires (une opération autre que l'opération habituelle ou normale, soit pour rendre l'application plus courte et plus efficace, soit pour offrir une flexibilité supplémentaire). Vous voulez définir un certain type d'opération qui a lieu à la suite de la définition du littéral.

Ce que vous obtenez est toujours un littéral, mais un littéral qui ne dénote pas nécessairement une valeur que vous prévoyez d'utiliser plus tard. L'exemple CustomUDL03 montre une telle utilisation non traditionnelle.

#include utilisant l'espace de noms std; opérateur vide "_countdown (long long non signé) {for (int i = Valeur; i> = 0; i--) cout << i << endl;} int main () {10_countdown; return 0;}

Notez que l'opérateur _countdown n'est pas attaché à quelque chose que vous associeriez normalement à une valeur, en fait, il ne renvoie aucune valeur, ce que vous obtenez à la place est un effet secondaire. voir cette sortie

10 9 8 7 6 5 4 3 2 1 0

Ce qui est arrivé, c'est que le compilateur a remplacé 10_countdown par des instructions personnalisées, une pour chaque itération de la boucle. 11 instructions cout qui affichent les valeurs entre 10 et 0. L'effet secondaire UDL ouvre toutes sortes de possibilités intéressantes pour créer du code qui simplifie certaines tâches répétitives d'une manière qui rend leur utilisation évidente.

Création de vos propres UDL en C ++ - mannequins

Le choix des éditeurs

Comment écrire un journal de gratitude pour Mindfulness - mannequins

Comment écrire un journal de gratitude pour Mindfulness - mannequins

Un journal de gratitude est un moyen puissant et simple de stimuler votre bien-être avec la pleine conscience. Le journal est simplement un enregistrement quotidien des choses dans votre vie que vous êtes reconnaissant. En réfléchissant sur ce qui vous a rendu reconnaissant à la fin de chaque journée, la recherche a constaté que les niveaux de gratitude augmentent et que les gens se sentent ...

Apprendre à propos de la Pleine Conscience - les nuls

Apprendre à propos de la Pleine Conscience - les nuls

La Pleine Conscience est plus qu'un ensemble de techniques à pratiquer. La pleine conscience consiste à questionner votre identité et votre relation avec le monde qui vous entoure. En comprenant qui vous êtes à un niveau plus profond, vous êtes moins affecté par des émotions négatives, des pensées ou des sensations physiques - vous êtes en train d'attaquer la racine du problème. Pour ces raisons, c'est ...

Façons essentielles d'être juste en pratiquant la pleine conscience - les nuls

Façons essentielles d'être juste en pratiquant la pleine conscience - les nuls

ÊTes-vous une personne occupée? Avez-vous trop à faire pour avoir le temps d'être juste? L'une des choses intéressantes à propos de la pleine conscience est que vous n'avez pas de temps fixe pour lequel vous êtes censé pratiquer. Votre pratique quotidienne peut être la méditation pendant une minute ou une heure - c'est ...

Le choix des éditeurs

Choisissez un sac photo pour reflex numérique - des nuls

Choisissez un sac photo pour reflex numérique - des nuls

Dès la sortie de votre premier reflex numérique (objectif unique) reflex) caméra, vous n'aurez probablement pas besoin d'un grand sac de caméra, mais il est toujours bon de penser à l'avance. Un sac de caméra est un endroit pour vos affaires. Il protège l'équipement et permet de ranger votre équipement lorsque vous ne l'utilisez pas. Il devrait aussi ...

Choisissez un trépied pour votre appareil photo reflex numérique - les tétines

Choisissez un trépied pour votre appareil photo reflex numérique - les tétines

Avez-vous besoin d'un trépied pour votre reflex numérique ( reflex mono-objectif) caméra? Si vous tenez l'appareil photo immobile et ne photographiez pas en dessous d'une vitesse d'obturation correspondant à la distance focale que vous utilisez, vous obtiendrez une image nette. Par exemple, si vous utilisez un objectif avec une distance focale de 100mm, l'inverse ...

Choisissez Accessoires pour votre appareil photo reflex numérique - les nuls

Choisissez Accessoires pour votre appareil photo reflex numérique - les nuls

Vous voudrez éventuellement acheter des accessoires pour votre appareil photo reflex numérique . Lorsque vous achetez un appareil photo reflex numérique, vous obtenez un boîtier d'appareil photo, une batterie et un objectif. C'est assez pour vous tirer d'affaire lorsque vous filmez près de chez vous, mais que se passe-t-il lorsque vous partez pour une journée à la recherche de beaux paysages ...

Le choix des éditeurs

Comment trouver, évaluer et installer des thèmes Premium - des nuls

Comment trouver, évaluer et installer des thèmes Premium - des nuls

Bien que des thèmes premium sont en train de surgir partout sur le web, une poignée se démarque vraiment avec des produits et services de qualité. Les trois thèmes premium suivants sont éprouvés, avec un suivi très stable et réussi des clients qui les utilisent: iThemes: Cory Miller et son équipe de designers et de wranglers fournissent plus de ...

10 Super plugins de gestion d'image - les nuls

10 Super plugins de gestion d'image - les nuls

Les dix plugins abordés ici adressent une ou plusieurs de vos gestion d'image Besoins. Tous ont des milliers d'utilisateurs, de bonnes critiques, des mises à jour régulières et sont faciles à installer. Tous les plugins sont gratuits, et plusieurs offrent des versions Pro ou Extended avec des fonctionnalités supplémentaires et des options de configuration. Considérez toutes les choses que vous pourriez devoir faire avec ...

Devriez-vous utiliser un thème Premium pour votre site WordPress? - Les mannequins

Devriez-vous utiliser un thème Premium pour votre site WordPress? - Les mannequins

Premium WordPress sont devenus un moyen très populaire pour les créateurs talentueux de fournir un service qui les passionne - la conception de thèmes - tout en faisant un peu d'argent pour leurs efforts. Il existe de nombreuses écoles de pensée sur ce qui fait une prime de thème. En fait, le sujet de ce qui est et n'est pas considéré premium est ...