4710

.Net…..
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4711

Ronchon embarrassed
Y'a une autre implémentation qui est multiplateformes :
GitHub - ssjx10/MySmallBasicGitHubContribute to ssjx10/MySmallBasic development by creating an account on GitHub.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

4712

C'est quoi le pb avec .NET ? C'est la cible de prédilection de MS depuis des années, maintenant c'est multi-plateforme et open-source, il manque quoi ? Un jour tu nous expliqueras ce qui à tes yeux mérite la moindre considération, pke j'ai vraiment l'impression de t'entendre chier sur absolument 100% de ce qui est abordé quelque soit le sujet sur yN.

([edit] bon on dirait que Microsoft Small Basic s'est arrêté à .NET 4.5, mais je n'ai pas l'impression que ça aurait changé grand-chose à ta réaction)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4713

Tu peux dire ce que tu veux, .Net est 99% windows only. le coté open source ne permet pas la majoritéé des applications de fonctionner sur autre chose que windows.

Et .net est la meme chose que Java. Lent et gourmand en RAM.

En fait c'est meme pire que Java sur certains aspects. Certaines applis veulent une version tres précise de .Net, si ce n'es tpas présent, elle ne marche pas, et windows ne sais pas installer ces frameworks tout seul. J'ai encore eu le cas il y a quelques mois.

Et pour un simple interpréteur BASIC est-ce qu'il y a vraiment besoin de .Net derriere?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4714

Ce que tu racontes est périmé de bientôt 10 ans. L'intégralité du post.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4715

Ha oui bien sur. Visual studio 2020 est maintenant plus rapide que VS6.

L’app qui m’a demandé d’installer une version précise de .net je l’ai rêvé. Et les app Windows marche et à merveille sous Mac OS et linux. Oui.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4716

Godzil, on est à VS2022 maintenant. Et oui, dans la vie, je dirais que rien n'est tout blanc ou tout noir, tout est une question de compromis.
Pareil pour ce qui marche ou pas, ça peut marcher "plus ou moins bien", etc. C'est pour ça qu'une app précise qui ne marche pas dans un cadre donné n'invalide pas l'entirèreté du framework concerné.
Un peu de nuance, que diable cheeky

4717

ça me rappelle un collègue, pro python... comme avec godzil, pour lui rien n'est portable, rien n'est bien, rien n'est rapide... et seul python est la réponse. mais en fait dès que tu creuses un peu, python n'est pas non plus bien d'après lui et que dans plein de cas c'est "nan mais python est pas génial pour ça, faudra le framework sdfhfjhg et depuis qu'ils ont décidé que dghsdfgsd il n'est plus aussi bien mais y'a pas d'alternative.

au final, tu en arrives à la conclusion que t'as un collègue qui ne code que des hello worlds chez lui sur son raspi en python, dont le moto est "nan mais c'est de la merde faut refaire en python" et si tu le suis te dit "ah nan mais je sais pas, ptet que pour ça c'est pas la bonne solution"... bref, le mec il critique tous les langages, toutes les technos et quand tu le mets devant ses responsabilité pour un choix il n'a rien d'autre à proposer. Alors ouais, c'est un collègue sympa et cool mais le pb c'est que ses sorties permanentes finissent par tuer des projets quand la hiérarchie qui dit "j'ai entendu que votre solution technique n'était pas bonne, vous avez pensez au python" (du coup tu sais d'où ça vient) et ça à toi ensuite de te taper toute la rechercher pour vérifier si c'est faisable ou pas et surtout de dire à ton équipe "nan mais va falloir dégager parce que le chef qui n'y connait rien est désormais persuadé qu'il faut faire du python"

et vu qu'on va me demander de justifier par un exemple... c'était une refonte de site sharepoint sur du onpremise avec comme contrainte que ça devait pouvoir migrer en cloud sans dév supplémentaire dans un an.
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

4718

Je n'ai jamais dit que rien n'est portable.

J'ai dit la majorité des apps .Net ne sont par portable. .net Core n'inclue que la base de .net, ce qui exclu tout la partie GUI. Python à ses défaut, et en dehors de faire des tests ou faire certains type de script je n'irais pas faire du Python pour quelque en prod qui demande beaucoup de resources, si c'est pour traiter un fichier a droite ou a gauche ca peux passer, mais c'est pas non plus un saint graal loin de la.

Ne me fait pas dire ce que je n'ai pas dit, il n'y a pas un language pour tous les gouverner (meme le C omnipresent n'est pas vraiment a ce niveau). Et je ne suis pas non plus stupide une app qui marche et a juste besoin de maintenance on ne réécrit pas de 0, quelque soit le language, meme ceux que je n'aime pas. J'ai maintenu un projet JavaScript/TypeScript pendant quasiment 3 ans avant que quelque chose hors de mon control explose et rende la maintenance tres compliqué.

Ceci dit il y a un langages que je refuse catégoriquement de toucher, et il m'a bruler juste en essayant d'executer des scripts: Ruby. J'utilisais Redmine a une époque parce que plutot bien foutut au nouveau interface et fonctionnalités. Probleme sur le temps ou j'ai essayé de l'utiliser il a passé plus de 80% du temps down a cause de changement dans Ruby entre changement de version et autre qui faisait que ca cassais et ne marchais plus, et a chaque fois il me fallait plusieurs heures pour remettre en service. J'ai fini par laisser tomber.

Chaque language a ses forces et faiblesses (je n'irais pas faire une app qui traite beaucoup de chaines de caractère en C par exemple, c'est beaucoup trop chiant). Le .Net est probablement parfait pour de la GUI sous windows (coucou les MFC) mais la on parle d'un language qui existe depuis 50 ans et des poussières, fait pour faire

10 PRINT "HELLO WORLD"
20 GOTO 10

un language qui tournait sur des systemes 1000x moins puissant que la moindre smartwatch sur le marché aujourd'hui, un language qui devrait pouvoir tourner sur de simple microcontrolleur avec 16Ko de RAM, pas 16GB. Donc pourquoi faire un tel language d'apprentissage dépendant d'un framework tel que .Net ce qui le rend inadapté pour tout autre qu'un PC moderne?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4719

C'est un projet de Microsoft qui date de 2008, donc en toute logique ils ont utilisé leurs technologies de l'époque. Si ç'avait été créé par la fondation KDE, ça aurait probablement utilisé KDE, et on aurait pu leur faire le même reproche.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

4720

Mais surtout est-ce un reproche ? Godzil qu'est-ce que tu proposerais/aimerais à la place ?
.NET c'est très bien comme environnement. Je ne donnerais certes pas ça à un gamin, mais pour un débutant en programmation c'est très bien et très propre si tu mets une syntaxe adaptée. Surtout maintenant que c'est Open Source. C'est carrément une techno de choix pour quiconque. C'est vrai que j'adore KDE, leurs applis (dernièrement j'ai joué avec Krita et je ne cesse d'être impressionné) et toolkits, mais je ne pense pas que ce soit plus facile à prendre en main (?) que .NET.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

4721

Alors oui c'est pas recent et les choses on changé depuis, mais vu comment microsoft a poussé certains truc dans le domaine de l'embarqué que ca soit au travers du micro:bit ou autre, ca reste mal adapté.

Ce qu'ils auraient du faire? un truc léger capable de tourner sur a peu prêt tout, entre autre la myriade de microcontroller qui ont soit de l'affichage soit un port série voir du réseau, a l'image de ce qu'on a pour les ESP8266 par exemple ou tu peux utiliser une forme de python émasculé, ou Lua suivant le firmware que tu utilise.

C'est vachement plus interessant pour un gamin de faire clignoter une LED que tu faire clignoter un pixel.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4722

À l'origine, c'était un projet perso d'un mec de MS qui voulait créer quelque chose dans l'esprit du BASIC des machines des années 80, pour que les enfants apprennent à programmer en jouant avec :
https://techcommunity.microsoft.com/t5/small-basic-blog/hello-world/ba-p/335289

Ce que tu proposes est quelque chose de différent, beaucoup plus orienté hardware. C'est une bonne idée de projet aussi, mais c'est assez éloigné de ce que fait MS, surtout à l'époque. C'est pas dit que le gars derrière aurait eu les compétences et/ou la volonté de développer ça.

(Quant à "c'est vachement plus intéressant de faire clignoter une LED qu'un pixel", je trouve que tu t'avances beaucoup... je suis pas sûr du tout que ce soit le cas pour le public visé, à savoir des gamins des années 2010. On peut le regretter, mais c'est un autre débat.)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

4723

Godzil (./4718) :
J'ai dit la majorité des apps .Net ne sont par portable. .net Core n'inclue que la base de .net, ce qui exclu tout la partie GUI.

Y a MAUI qui arrive, dont tout le monde que je connais dans l'écosystème NET me vante les mérites (Win+OSX). J'attend de voir.
Sinon, en actuel, tu as Avalonia UI.

4724

Bon pour dire, le site React sur lequel je bosse, un CRM assez simple en somme, ben mon PC (Core i7 9700K @ 4.9 GHz) j'ai envie de le changer. Je vois déjà la différence avec le McBook Air et ses performances ~35% meilleures en single thread, qui rend le truc plus utilisable. Genre il faut une ou deux secondes pour que les suggestions apparaissent dans l'intellisense, alors certes ça vient tout seul sans que t'aies à presser une combinaison de touches donc ça rend moins pourri, mais c'est vraiment limite limite…
C'est fou quand même.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

4725

Folco (./4705) :
Un compilateur pourrait-il faire une différence entre structure->membre et (*structure).membre, au regard de la norme C ou C++ ?

J'ai bon ?
#include <iostream> class tmp { private: int n; public: tmp() : n(0) {} tmp& operator * () { std::cout << "This is the operator *\n" ; return *this; } tmp* operator -> () { std::cout << "This is the operator ->\n" ; return this; } void hello() const { std::cout << "Hello is " << n << "\n"; } }; int main() { tmp p; p.hello(); p->hello(); (*p).hello(); }

4726

Oui, mais çe ne sert pas qu'à ça, ça peut être utile quand tu veux faire du slicing d'objet sans fournir d'accès direct à l'objet sous-jacent, eg:

struct Buffer { virtual uint32_t RequestGrowth() { return 0; } virtual uint8_t* Data() = 0; }; struct BufferReader { BufferReader(Buffer* buffer) : _buffer(buffer) { }; private: Buffer* operator -> () { return _buffer; } private: Buffer* _buffer; }; struct ReadableHeapBuffer : Buffer, BufferReader { ReadableHeapBuffer() : Buffer(), BufferReader(this) { } uint32_t RequestGrowth() override { ... } uint8_t* Data() override { ... } };
J'ai utilisé ça y a pas si longtemps au boulot: j'ai bricolé une abstraction de named pipes. Le code de la classe consomme des ReadableHeapBuffer (et leur variante en écriture, évidemment). Le code appelant cette abstraction passe une lambda qui reçoit un BufferReader& en argument. Ca me donne accès à toutes les méthodes que j'aurais pu implémenter (lecture d'entier, flottants, etc) sans avoir accès aux capacités du buffer lui-même. On peut évidemment se débrouiller d'autres manières, mais celle là est simple et ne coûte globalement rien dans le cas où la construction de BufferReader serait plus onéreuse, puisqu'au final la création de la connection pour la pipe créée le reader une fois pour toute (le buffer est réutilisé, j'ai d'autres implémentations à taille fixe sur la pile/le heap, et d'autres qui peuvent grandir)

4727

J'avoue ça me dépasse grin Si c'était en assembleur je comprendrais les mécanismes, mais là je trouve qu'il y a trop d'abstraction grin
En tout cas, je n'ai pas le temps et l'énergie de décortiquer ces mécanismes, et tout un tas de choses apparus avec C++17 sad

Au fait, je n'arrive pas à savoir si es fonctions lambdas sont juste un mécanisme super pour simplifier grandement l'écriture, ou si vraiment elles permettent de faire des choses impossibles auparavant.

4728

Les lambda sont juste du sucre pour souvent rendre la lecture plus compliqué qu’elle ne doit.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4729

Alors ça dépend de l'utilisation qu'on se fixe, comme souvent. Perso, une lambda pour moi doit être un one-liner, sinon ça rend la fonction qui l'intègre bordélique à lire.
Au-delà, je préfère déclaration + définition d'une nouvelle méthode/fonction, et ma lambda l'appelle.
Mais ok merci. cheeky

4730

Ceci dit, il y a une différence sur certains langage: les lambda peuvent avoir accès aux variables de la fonctionne qui les instancies.

Mais ça reviens a la même chose pour ces langages à déclarer une fonction dans une fonction.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4731

En C++, ça passe par le mécanisme de capture.

4732

Cette capture c'est souvent ce qui fait toute la puissance de la fonctionnalité. Sans ça c'est un sucre syntaxique trivial par rapport à déclarer une méthode statique et ça ne fait gagner que quelques caractères, c'est quand on capture des variables que le gain devient plus intéressant. Il y a des langages et des frameworks qui reposent beaucoup là-dessus, et comme tous les sucres syntaxiques il faut un peu de temps pour s'y habituer avant que ça ne devienne facile à lire. En l'occurrence je trouve que ça fait partie des quelques rares à être vraiment très rentables.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4733

Bon à savoir. C’est vrai que j’y suis habitué, et que je n’en mesure plus vraiment le confort.

Euh, j'aurais besoin d'un peu d'aide svp, pour deux regex qui vont vous paraitre bêtes comme choux, mais je ne m'y suis pratiquement jamais essayé cheeky

Mes docs :
https://formation-perl.fr/guide-perl-08.html
et https://doc.qt.io/qt-6/qregularexpressionvalidator.html#regularExpression-prop

Mon outil de test :
regex101: build, test, and debug regexregex101Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET.


C'est pour faire un validateur d'entrée dans un dialogue. Ca peut se faire via une classe abstraite dont on implémente le validateur, mais les regex, c'est plus classe, même quand on y connait rien tripo
Donc je découvre ça : https://doc.qt.io/qt-6/qregularexpressionvalidator.html
Tout de suite, ça en jette.

Première regex, la plus compliquée :
<groupe de 5 chiffres décimaux> <slash> <groupe de 5 chiffres décimaux>. J'ai écrit ça : \d{5}\/\d{5}. Ca semble marcher.

Seconde regex, plus simple, donc j'y arrive pas :
<groupe de 5 chiffres décimaux, ou rien du tout>. J'ai écrit ça : \d{5}?Problème :
- il me dit que 0 caractère (chaine vide), ça ne matche pas, malgré l'emploi du '?' décrit dans le tuto Perl (tableau 4)
- Si j'écris 0123456789, il me trouve deux matches (deux groupes de 5 chiffres), alors que je ne ne veux que 0 ou 1 groupe.

Même sans me souffler la réponse, pourriez-vous m'aiguiller svp ?

Merci d'avance smile




Notes:
- le '?' ne semble avoir aucun effet. regex101 me sort exactement la même explication, avec ou sans
- même [\d\d\d\d\d]?, qui semble laid mais simple, semble ne pas matcher, et me renvoie 10 matches pour 0123456789 :/

4734

La deuxième regex est plus complique car je pense qu'il est obligatoire d'utiliser la fonctionnalité des lookbehinds des regex. (en gros faire une recherche à reculons si on veut simplifier)

[\d\d\d\d\d]? correspond à : est-ce que dans la chaine il y a un caractère correspondant à \d ou \d ou \d ou \d ou \d, donc en gros la regex est pareil que [\d]? ce qui est vrai pour tous les caractères de ton numéros.
Pour le \d{5}?, je pense qu'effectivement dans ce cas le ? ne sert a rien car la regex dit explicitement qu'il faut 5 chiffres consécutifs pour matcher, dans un numéro à 10 chiffres, il y a bien 2x 5 chiffres consécutifs.

Peut-être que d'autres pourrons mieux expliquer (n'étant pas expert regex moi même tongue), mais je les comprends comme ca smile

Solution, si tu trouves pas : (peut-être à adapter un peut selon ton besoin)

https://stackoverflow.com/a/51352475
avatar

4735

Folco (./4729) :
Alors ça dépend de l'utilisation qu'on se fixe, comme souvent. Perso, une lambda pour moi doit être un one-liner, sinon ça rend la fonction qui l'intègre bordélique à lire.
Au-delà, je préfère déclaration + définition d'une nouvelle méthode/fonction, et ma lambda l'appelle.
Mais ok merci. cheeky

Tu peux considérer une lambda comme du sucre syntaxique pour ceci

struct Closure { Closure(capture-list) { ...} return_type operator () const (arguments...) { ... } /* non const si la lambda est déclarée mutable */ capture-list _captures...; };
ça compile globalement à la même chose, à cela près que les lambda sont techniquement des types non nommés. En release, le compilo peut arriver à être assez malin pour inliner la closure, ce qui élimine les captures et réduit l'utilisation de la pile. C'est un truc que je fais pas mal quand j'ai besoin d'isoler certains traitements:

auto foo = [] { ... }();
C'est un peu plus propre que la version C (qui ne démérite pas pour autant, je vois déjà les fourches et les flambeaux arriver):
type foo; { ...; foo = ... }et ça a l'avantage d'éviter les initialisations par défaut

En passant, si ta lambda n'a pas de capture, elle est implicitement convertible vers un pointeur de fonction sur toutes les conventions d'appels de ta plateforme.
Autre exemple tiré du boulot:

template <auto Value, Utilities::StringLiteral Description> struct ErrorCode { constexpr static const auto value = Value; constexpr static const std::string_view description() { return Description.value; } }; namespace ErrorCodes { using WindowCreationFailed = ErrorCode<0x53420001, "Erreur lors de la création de la fenêtre">; using ControlAcquisitionFailed = ErrorCode<0x53420002, "Erreur lors de la création du contrôle TX">; // ^^^ Any error code added above needs to be added to the sequence below. Ordering does not matter. vvv using ErrorCodes = Traits::TypeSequence< WindowCreationFailed, ControlAcquisitionFailed >; /** * Pour un code d'erreur donné, décrit l'erreur associée au format texte. */ constexpr static const std::string_view Describe(uint32_t errorCode) { constexpr const auto describeImpl = [](uint32_t errorCode, auto&& t, auto& ref) constexpr -> std::string_view { using sequence_t = std::decay_t<decltype(t)>; using head_t = Traits::Head<sequence_t>; using tail_t = Traits::Tail<sequence_t>; if (errorCode == head_t::value) return head_t::description(); else if constexpr (tail_t::size > 0) return ref(errorCode, tail_t{ }, ref); else { constexpr const std::string_view default_result = "Code d'erreur inconnu"; return default_result; } }; return describeImpl(errorCode, ErrorCodes{}, describeImpl); } }
ça me permet d'éviter d'exposer une fonction interne (tout ça est obligé d'être dans un header). J'évite aussi de capturer la lambda sur elle-même en la faisant se passer en argument d'appel. C'est un petit détail mais ça ne mange pas de pain, et le compilo est assez malin pour complètement désosser la lambda, et produire un if-else comme si c'était fait main. Si je rajoute des codes d'erreur, il saura même me faire un switch sauf MSVC, il est un peu con

4736

quel horreur à lire couic
avatar

4737

Quand t'es habitué t'en fais abstraction. C'est un peu particulier ici car techniquement ma lambda est générique (Ce bout de code en particulier me permet de lier une valeur à une description, et à un type. ça m'évite de a) faire un enum et b) faire un switch sur les valeurs avec les chaines, tout est fait d'un coup par le compilo. Cette construction en particulier est utilisée pour construire des exceptions, qui sont renvoyées à un client java à travers les named pipes que j'ai mentionné plus haut, et en gros, mon code final devient:

throw Exception(ErrorCode::WindowAcquisitionFailed { })
Moins de répétition, typage fort, et en plus de ça, la quasi totalité du code disparaît.



describeCode(unsigned int):                      # @describeCode(unsigned int)
        push    rbx
        cmp     edi, 1396834305
        je      .LBB0_1
        cmp     edi, 1396834306
        jne     .LBB0_3
        mov     rbx, qword ptr [rip + template parameter object for StringLiteral<44ul>{char [44]{(char)69, (char)114, (char)114, (char)101, (char)117, (char)114, (char)32, (char)108, (char)111, (char)114, (char)115, (char)32, (char)100, (char)101, (char)32, (char)108, (char)97, (char)32, (char)99, (char)114, (char)-61, (char)-87, (char)97, (char)116, (char)105, (char)111, (char)110, (char)32, (char)100, (char)117, (char)32, (char)99, (char)111, (char)110, (char)116, (char)114, (char)-61, (char)-76, (char)108, (char)101, (char)32, (char)84, (char)88}}@GOTPCREL]
        jmp     .LBB0_5
.LBB0_1:
        mov     rbx, qword ptr [rip + template parameter object for StringLiteral<43ul>{char [43]{(char)69, (char)114, (char)114, (char)101, (char)117, (char)114, (char)32, (char)108, (char)111, (char)114, (char)115, (char)32, (char)100, (char)101, (char)32, (char)108, (char)97, (char)32, (char)99, (char)114, (char)-61, (char)-87, (char)97, (char)116, (char)105, (char)111, (char)110, (char)32, (char)100, (char)101, (char)32, (char)108, (char)97, (char)32, (char)102, (char)101, (char)110, (char)-61, (char)-86, (char)116, (char)114, (char)101}}@GOTPCREL]
.LBB0_5:
        mov     rdi, rbx
        call    strlen
        mov     rdx, rbx
        pop     rbx
        ret
.LBB0_3:
        mov     ebx, offset .L.str
        mov     eax, 21
        mov     rdx, rbx
        pop     rbx
        ret
template parameter object for StringLiteral<43ul>{char [43]{(char)69, (char)114, (char)114, (char)101, (char)117, (char)114, (char)32, (char)108, (char)111, (char)114, (char)115, (char)32, (char)100, (char)101, (char)32, (char)108, (char)97, (char)32, (char)99, (char)114, (char)-61, (char)-87, (char)97, (char)116, (char)105, (char)111, (char)110, (char)32, (char)100, (char)101, (char)32, (char)108, (char)97, (char)32, (char)102, (char)101, (char)110, (char)-61, (char)-86, (char)116, (char)114, (char)101}}:
        .asciz  "Erreur lors de la cr\303\251ation de la fen\303\252tre"

.L.str:
        .asciz  "Code d'erreur inconnu"

template parameter object for StringLiteral<44ul>{char [44]{(char)69, (char)114, (char)114, (char)101, (char)117, (char)114, (char)32, (char)108, (char)111, (char)114, (char)115, (char)32, (char)100, (char)101, (char)32, (char)108, (char)97, (char)32, (char)99, (char)114, (char)-61, (char)-87, (char)97, (char)116, (char)105, (char)111, (char)110, (char)32, (char)100, (char)117, (char)32, (char)99, (char)111, (char)110, (char)116, (char)114, (char)-61, (char)-76, (char)108, (char)101, (char)32, (char)84, (char)88}}:
        .asciz  "Erreur lors de la cr\303\251ation du contr\303\264le TX"

Le typage est un peu infect parce que j'utilise une nouveauté du C++20 qui me permet d'avoir des chaînes de caractères dans les template (ça se convertit implicitement en template en explosant les caractères un par un), mais tu vois que j'ai bien l'équivalent de deux if (code == x) dans l'assembleur. (l'appel de strlen me perturbe, la longueur de la chaîne est sensée être connue, comme c'est le cas dans l'autre cas)

4738

Il ne devrait pas y avoir de 'si tu es habitué" la syntaxe est vraiment mauvaise.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4739

Tu préfèrerais

auto describeImpl = []<typename ErrorCodes, typename Self>(uint32_t errorCode, ErrorCodes, Self&& ref) { ... }
Je trouve qu'on est très large dans l'acceptable, pour avoir fait bien pire. Je ne dis pas que la syntaxe est bien, mais que c'est encore très très soft dans ce qu'on peut faire.

4740

Non c'est la meme syntaxe.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.