multi_index_container et composite_key
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...
Code:
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>
> |
La méthode getMediaStateDuration a pour signature :
Code:
const uint64_t getMediaStateDuration() const
Je souhaiterais modifier la signature en
Code:
const uint64_t getMediaStateDuration(const uint64_t &now = _MCU->getTimestamp()) const
Le 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’
Pour retirer l'erreur, il faut que je supprime la valeur par défaut et que je créé une méthode:
Code:
inline const uint64_t getMediaStateDuration() const { this->getMediaStateDuration(_MCU->getTimestamp()); }
Est-ce qu'il y a un moyen de supprimer le doublon?