60

5: Euh, y a rien à comprendre. Disons que "foobar *" est (en utilisation la notion des templates) un "ptr<foobar>", et tu peux modifier ce que désigne ptr<foobar> sans pour autant le modifier (donc *const ptr<foobar> n'est pas un "const foobar" mais un "foobar" tout court). C'est pareil pour "mutable foobar" aka "mut<foobar>" : tu peux modifier le contenu de "mut<foobar>" (i.e, la valeur de type foobar) sans modifier le contenant (le wrapper). En gros, l'implémentation inefficace de mut (qu'on est presque obligé d'utiliser en C) est vaguement équivalente à :
template<class T> mut {
  T* ptr;
public:
  mut() { ptr=new T; }
  ~mut() { delete ptr; }
  operator T&() const { return *T; }
};


1: Ne fais pas semblant de ne pas avoir lu la discussion précédente... C'est clairement plus efficace en mettant "const" qu'en ne le mettant jamais, puisque le compilo va louper plein d'optimisations dans la fonction appelante, avec ta méthode... Et tu vas devoir faire un memcpy dans l'exemple de Kevin au lieu de faire un move, etc...

3: Si tu te sers des facultés d'abstraction pour écrire du code bcp plus compact (utiliser des std::string au lieu de char*, par exemple), alors évidemment ton code sera moins efficace (mais aussi plus simple). Si tu veux écrire du code aussi efficace qu'en C, tu peux. Mais en plus, tu as les templates et les mutables qui te permettent de faire encore mieux. (tu peux te servir des templates comme d'un callback hyper puissant, par exemple; dans GTC 2.0 le parser utilise à fond les templates pour décrire les expressions avec priorités et ça permet de faire un truc hyper efficace)

7: C quoi la différence entre structure et classe selon toi?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

61

5. Veux plus comprendre tes explications.
1. Plein d'optimisations... Hum. Tu encapsules tes donnees ou pas ?
3. Tu peux declarer ta callback et ta fonction en inline. Ca revient au meme que des templates (avec un peu de labeur car il faut definir une struct commune d'evaluations).
7. En C++ struct = class que publique. Mais struct C != struct C++.

62

5. neutral mais ça explique en quoi le "mutable" n'est pas une hérésie, comme tu as l'air de le dire...
1. comment ça, les encapsuler? je ne vois pas ce que tu veux dire, en tout cas "encapsulation" ou pas, le compilo a moins d'information sur la fonction qu'il appelle, et peut moins bien optimiser
3. il y a plein de manipulations que tu ne peux pas faire de cette façon-là... (ex : take_exponential_of(x+y) => take_exponential_of(x)*take_exponential_of(y) ; évidemment dans ce cas-là c'est facile mais dans d'autres cas ça peut être plus délicat...) Enfin si, tu peux tjs les faire en "inlinant" toi-même les appels, mais ça devient vite ingérable si c trop complexe sick
7. oui, et? tu peux tjs utiliser une structure C-like...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

63

5. Ce n'est peut etre pas une heresie en C++, mais en C si.
1. Normalement aucune fonction n'a access aux membres de ta structure a part 2,3. Donc je comprends pas le probleme de fonctions ayant acces a des champs dont l'appel n'est pas otpimise parce que pas const mais en fait const. Soit on
3. ? Tu peux le faire en C++ cela ? Arg, je vois comment. Bonjour l'usine a gaz sick.
7. Elles ne sont pas identique en C et en C++ si mes souvenirs sont bons.
8. Puis les compilos sont nuls. sick

64

Après Kevin et PpHd dans les "débats" kernel/nostub, voici Pollux et PpHd, encore plus fort zzz
grin
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

65

Oui, le nouveau débat : mutable/const et C++/C trigic

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

66

Vous croyez que vous arriverez au bout un jour ?
Je crois que c'est encore un débat sans fin... Dites 42 pour vous mettre d'accord et on n'en parle plus smile
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

67

De toute façon, ./63 est bourré de gros trolls velus, donc j'ai vraiment la flemme d'y répondre tongue

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

68

Allez ça va repartir... grin
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

69

Pas ./63.3