Discussion
Loading...

Post

  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
Ambraven :verifinking:​
@Ambraven@social.mochi.academy  ·  activity timestamp 3 weeks ago

Ah, donc en C++ on peut avoir ça:

A& B::getA() { <some code> }
const A& B::getA() const { <the same exact code> }

et ça choc personne... Bien bien bien...

#cpp #JppCommentCestPasseALaCodeReviewCa

  • Copy link
  • Flag this post
  • Block
Lex Plt
@lexplt@hachyderm.io replied  ·  activity timestamp 3 weeks ago

@Ambraven c’est hyper chiant, le deducing this arrive qu’en cpp23 mais permettrait d’écrire une seule version pour tout gérer (const, non const, même rvalue ref)

https://www.sandordargo.com/blog/2022/02/16/deducing-this-cpp23

Le tout avec une syntaxe pas si simple à lire / comprendre du premier coup d’œil, parce que C++ 🤡

(J’ai vu une 1000eme occasion de dunk sur mon langage préféré, mon devoir est de dire que c’est de la merde)

  • Copy link
  • Flag this comment
  • Block
Ambraven :verifinking:​
@Ambraven@social.mochi.academy replied  ·  activity timestamp 3 weeks ago

@lexplt

moi, nageant dans le turfu avec C++11: "C++ combien ? Mais enfin, vous délirez ! c'est de la science-fiction !"

Blague à part je vois en comment mon exemple plus haut ne peut pas être remplacé par

A& B::getA() const { <same code but only once> }

À la limite il aurait écrit :

A& B::getA() const { <the CODE> }
const A& B::getAConst() const { return getA(); }

Ça aurait fait sens... Au moins c'est explicite. Peut être je rate un truc, je sais pas. Mais quand on commence à dupliquer du code comme ça, surtout avec deux fonctions avec le même nom et les mêmes arguments, j'aime pas.

  • Copy link
  • Flag this comment
  • Block
Ambraven :verifinking:​
@Ambraven@social.mochi.academy replied  ·  activity timestamp 3 weeks ago

Mais bon ça aurait pu être pire, le code aurait pu être différent... Vous savez, pour qu'il y ait pas du tout de confusion sur quel version de la fonction est exécuté...

  • Copy link
  • Flag this comment
  • Block
Log in

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.1-alpha.8 no JS en
Automatic federation enabled
  • Explore
  • About
  • Members
  • Code of Conduct
Home
Login