Journal Recherche de valeur dans un tableau et l'écosystème des compilateurs C++

Posté par  . Licence CC By‑SA.
Étiquettes :
69
3
oct.
2021

Bonjour 'nal,

GCC, Clang, MSVC, sont tous des compilateurs très performants, ayant de nombreuses heuristiques pour émettre des instructions terriblement efficaces, à défaut d'être optimales. De même pour ICC, le compilateur d'Intel, réputé pour enterrer tous les autres en termes de performance du code généré. On en parle pas beaucoup mais il est là. (Tiens, d'ailleurs, savais-tu qu'Intel migrait son compilateur vers LLVM ? Le nouveau compilateur se nomme ICX pour le C, et ICPX pour le C++.)

Il (…)

Journal Astico2D

Posté par  . Licence CC By‑SA.
16
2
sept.
2021

Bonjour,

voici un petit outil que j'ai écrit pour des TP en imagerie :
Astico2D

L'acronyme signifie "Atelier Simple de Transformations d'Images au Clavier avec OpenCV en 2D" (ouf).

Astico2D est un module qui permet d'écrire de petits programmes en C++ (y compris pour des débutants), pour appliquer des transformations sur une image couleur, l'inverser ou faire un seuil en noir et blanc, afficher l'image résultat et zoomer sur une portion. Le module s'appuie sur la librairie OpenCV, disponible pour (…)

Journal Alignement chaotic neutre

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
21
10
juil.
2021

Demat' iNal,

J'ai récemment eu l'ineffable [1] plaisir de corriger un bug dans LLVM qui m'a causé quelques mauvaises soirées. Afin que l'histoire devienne légende et que la légende fasse mythe, je me décide à vous en raconter quelques détails amusants.

Considérons le bout de code suivant :

#include <string>
#include <boost/align/aligned_allocator.hpp> 

constexpr std::size_t align = 32;
template<class T>
using aligned_allocator = boost::alignment::aligned_allocator<T, align>;

using aligned_string = std::basic_string<char, std::char_traits<char>, aligned_allocator<char>>;

aligned_string make_string(int num) {
    return aligned_string(num, '\0');

}

#include <iostream>
(…)

Forum Programmation.c++ Petite question de c++ pour égayer votre vendredi

Posté par  . Licence CC By‑SA.
Étiquettes :
2
28
mai
2021

Bonjour,
je suis en train de coder une toute petite librairie et je bute sur un petit problème.
voici le code actuel (simplifié):

template <typename A, typename B>
class Function {
public:
    Function() {
        register_inputs();
    }

    Input<A> in0;
    Input<B> in1;
    void register_inputs() {
        inputs.insert(&in0);
        inputs.insert(&in1);
    }

private:
    std::unordered_set<InputBase
(…)

Forum général.petites-annonces Recrutement d'un développeur C/C++ sur Besançon

Posté par  . Licence CC By‑SA.
10
4
mai
2021

Mon entreprise recherche un développeur C/C++.

Nous ne développons pas énormement de logiciels libres, mais vous pourrez néanmoins découvrir quelques projets déjà présentés ici et développés par la société sur le Github : https://github.com/Jet1oeil.
Nous travaillons avec beaucoup de solutions libres et en environnement linux très principalement (parfois nécessaire de passer sous windows et mac pour corriger certaines incompatbilités) même si la solution est multiplateforme.

Je vous laisse découvrir l'offre.

La société Jet1oeil située au Parc d’Activités de l’Echange (…)

Journal Sortie de C++ 2000

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
27
1
avr.
2021

Depuis la sortie de C++11, la langage C++ a connu de nombreuses évolutions: C++14, C++17 et enfin C++20 l'an dernier.

Cependant, ce rythme de sortie semblait assez lent aux vrais amateurs de C++, aussi le C++omité de standardisation a-t-il décidé de sortir une nouvelle version, affectueusement nommée C++2000. Fidèle à sa volonté de simplification du langage, le C++omité n'a intégré que les fonctionnalités les plus attendues et nécessaires :

  • Une nouvelle syntaxe pour apporter la puissance des template à l'assembleur (…)

Journal 723, +5736, -5696… un mois de travail de résurrection d'un projet libre…

Posté par  . Licence CC By‑SA.
Étiquettes :
129
17
mar.
2021

Bonjour à tous

Le 10 février dernier, pris de nostalgie et d'ennui, je me suis lancé dans un projet un peu fou, probablement inutile et vain (donc indispensable) : faire revivre un projet auquel j'ai beaucoup contribué à une époque mais que j'ai perdu de vue ces dernières années. Le projet en question est complexe et volumineux puisqu'il s'agit de Calligra, la suite bureautique du projet KDE. Ayant été co-mainteneur de Calligra Words, je me focaliserai surtout sur ce dernier.

(…)

Lien Intel publie gratuitement son oneAPI Toolkit, qui inclue la dernière version de ses compilateurs

Posté par  (site Web personnel) .
Étiquettes :
3
8
fév.
2021

Journal Unvanquished: un patch de dernière minute pour la 0.51 et une conférence ce dimanche

9
21
nov.
2020

Préambule: Ce journal traite du jeu libre Unvanquished, mélant stratégie et vue à la première personne. Ce journal est une traduction de ce billet sur le blog officiel.

Salut à tous, certaines personnes ont rapporté que notre version 0.51 précompilée a quelques problèmes sur les distributions Linux récentes. Une façon simple de patcher votre jeu téléchargé est donné juste après. Il y a aussi une conférence à voir ce dimanche en ligne!

Une conférence ce dimanche pour Debian

(…)

Forum Programmation.c++ Création de procédures en texte simple

Posté par  (site Web personnel) . Licence CC By‑SA.
2
2
nov.
2020

Bonjour à tous,
je suis en train d'écrire un petit logiciel qui sert à piloter et à configurer des circuits intégrés. Ces circuits intégrés sont ce qu'on appelle des ASICs, c'est à dire qu'ils ont été spécifiquement conçus pour l'expérience pour laquelle je travaille. Ce ne sont donc pas des composants "standards", mais ça n'est pas vraiment important.

Avec ce petit logiciel nous sommes capables, entre autre chose de stocker une valeur dans un registre de configuration, relire cette valeur (…)

Journal C++ Hell/Heaven et les concepts

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
11
17
sept.
2020

Salut à tous,

C++20 apporte les concepts, mais par pure nostalgie, regardons comment émuler ça en C++11

#include <utility>

#define REQUIRES(x) class _ = decltype(x)

template<class T,
         REQUIRES(((std::declval<T>()==0), T(1), std::declval<T>() * (std::declval<T>() -1)))>
T fact(T const& n) {
    return n == 0
(…)

Journal C++ vin va vous faire tourner en barrique !

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
19
17
sept.
2020

Ah Nal,

Je viens de découvrir avec grand plaisir que C++, mon premier amour de langage, va enfin entrer dans le vingtième siècle en adoptant un système de modules similaire à ce que l'on trouve dans les autres langages.

Ces modules seront introduit dans C++20:

Exemple d'un module dans un fichier duck.cpp:

export module duck;
import <iostream>;

export void quack() {
    std::cout << "Coin coin !" << std::endl;
}

Son utilisation:

import duck;

int main() {
    quack();
}

Il (…)