Les patrons variables du C++11 : 2 – Idiomes courants

Magazine
Marque
GNU/Linux Magazine
Numéro
160
Mois de parution
mai 2013
Domaines


Résumé
Le premier article de cette petite série s'était attaché à définir ce que sont les patrons variables du langage C++, tels que définis dans le dernier standard du langage sorti fin 2011. Nous allons maintenant voir quelques techniques usuelles lorsque l'on se trouve à devoir manipuler des paquets de paramètres de patrons.

La dernière fois, nous avions terminé sur une possibilité pour obtenir une sorte de parcours des éléments d'un paquet, en les envoyant un à un à une fonction. Toutefois, la solution n'était pas satisfaisante, car elle pouvait nécessiter la définition d'un intermédiaire artificiel. Heureusement, d'autres solutions existent, qui ne sont pas sans rappeler les techniques habituellement mises en œuvre dans les langages fonctionnels comme Erlang ou Haskell pour parcourir les éléments d'une liste.

1 Extraction du premier élément

Procédons par étapes. Dans un premier temps, étant donné un paquet de paramètres (de valeurs pour commencer), l'objectif est d'en extraire le premier élément. Supposons un patron variable de classe comme celui-ci, dont le nom sera justifié un peu plus loin :

template<int... INTS>

struct Sum;

Déclarons maintenant une spécialisation de ce patron :

template<int HEAD, int... TAIL>

struct Sum<HEAD, TAIL...>

{

  static constexpr int value = HEAD;

};

Toute la...

Cet article est réservé aux abonnés. Il vous reste 95% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Découvrez la programmation différentiable

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

La programmation différentiable est une nouvelle façon de penser la programmation. Le principe consiste à considérer tout un programme comme une fonction qu’on puisse différentier, et donc optimiser. Nous allons construire dans cet article les outils de base pour ce faire, et présenter la librairie JAX, qui facilite la tâche.

Concevoir des tableaux en LaTeX

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Il n'est pas rare de vouloir intégrer de petits tableaux dans ses documents. LaTeX permet de créer rapidement et simplement une telle représentation d'informations. Il est également possible, avec un peu d'huile de coude, de créer des tableaux très complexes ! Ce n'est pas si compliqué... à condition de savoir comment faire !

De l'usage de l'underscore en Python

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

Un underscore avant le nom d'un attribut ou deux, est-ce un caprice de développeur ? Et si je veux utiliser des underscores après le nom de mes variables, est-ce que cela a une signification ? Tout, tout, tout, vous saurez tout sur l'usage des underscores en Python !

Parler à un RADAR spatioporté : traitement et analyse des données de Sentinel-1

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

Nous avions étudié comment fonctionne un RADAR pour la mesure de distance, puis d’azimut et finalement interférométrique, lors d’un déploiement depuis le sol. Nous allons appliquer ces connaissances aux données acquises par les RADAR transportés par les satellites de l’ESA Sentinel-1, librement disponibles sur le Web. Nous conclurons en installant au sol une cible coopérative qui sera parfaitement visible depuis l’espace.