Hello la compagnie,
J'utilise actuellement un container multi_index_container avec un index de type composite_key.
Est-il possible d'utiliser une fonction utilisant des paramètres par défaut?
Je m'explique...
La méthode getMediaStateDuration a pour signature :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ordered_non_unique<tag<CONFERENCEAVAILABLE>, composite_key< std::shared_ptr<Conference>, const_mem_fun<Resource, const MEDIA_STATE &, &Resource::getMediaState>, const_mem_fun<Conference, const unsigned int, &Conference::getNbMembers>, const_mem_fun<Resource, const uint64_t, &Resource::getMediaStateDuration>, const_mem_fun<Resource, const int &, &Resource::getNumber> >Je souhaiterais modifier la signature en
Code : Sélectionner tout - Visualiser dans une fenêtre à part const uint64_t getMediaStateDuration() constLe probleme est que j'obtiens l'erreur : ./includes/conferencemanager.hpp:35:98: error: could not convert template argument ‘&Resource::getMediaStateDuration’ from ‘const uint64_t (Resource::*)(const uint64_t&) const’ {aka ‘const long unsigned int (Resource::*)(const long unsigned int&) const’} to ‘const long unsigned int (Resource::*)() const’
Code : Sélectionner tout - Visualiser dans une fenêtre à part const uint64_t getMediaStateDuration(const uint64_t &now = _MCU->getTimestamp()) const
Pour retirer l'erreur, il faut que je supprime la valeur par défaut et que je créé une méthode:Est-ce qu'il y a un moyen de supprimer le doublon?
Code : Sélectionner tout - Visualiser dans une fenêtre à part inline const uint64_t getMediaStateDuration() const { this->getMediaStateDuration(_MCU->getTimestamp()); }
Partager