1

Comment fait-on pour avoir une valeur par défault quand on a une structure comme paramètre?

par exemple, ca ca marche:
void f(bool = false)

mais si on a:
void f(une_struct)

on fait comment?

2

une_struct maValeurParDefaut = { ... };
void f(une_struct b = maValeurParDefaut )
Tout ce qui passe pas par le port 80, c'est de la triche.

3

Ou alors tu utilises un constructeur de ta structure
void f(une_struct b = une_struct())
void f(une_struct b = une_struct(x, y))
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

4

ah, merci Twindruff smile

5

Et si la structure n'a pas de constructeur, tu peux faire ça:
struct CalcUpdateInitialized : public CalcUpdate {
  CalcUpdateInitialized() {
    std::memset(static_cast<CalcUpdate *>(this),0,sizeof(CalcUpdate));
    start=callback_ticalcs_start;
    stop=callback_ticalcs_stop;
    refresh=callback_ticalcs_refresh;
    pbar=callback_ticalcs_pbar;
    label=callback_ticalcs_label;
  }
};
CalcUpdate ticalcsUpdate=CalcUpdateInitialized();

ce qui fonctionne aussi dans les arguments par défaut:
void f(CalcUpdate b = CalcUpdateInitialized())
et ça reste de l'ISO C++98 (le standard C++ courant) parfaitement valide (enfin, pas sûr pour le memset, mais si tu initialises tous les membres, ce n'est pas la peine, j'utilise cette technique parce que Romain s'amuse à rajouter des champs dans la structure CalcUpdate de la libticalcs2 de temps en temps).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité