J'ai classe avec une fonction membre qui prend un argument par défaut.tr1 :: mem_fn et les membres avec les arguments par défaut
struct Class
{
void member(int n = 0)
{}
};
Au moyen de std :: tr1 :: mem_fn Je peux l'appeler:
Class object;
std::tr1::mem_fn(&Class::member)(object,10);
Cela dit, si je veux invoquer le appelable membre de l'objet avec l'argument par défaut, Quelle est la syntaxe correcte?
std::tr1::mem_fn(&Class::member)(object); // This does not work
g ++ se plaint avec l'erreur suivante:
test.cc:17: error: no match for call to ‘(std::tr1::_Mem_fn<void (Class::*)(int)>) (Class&)’
/usr/include/c++/4.3/tr1_impl/functional:551: note: candidates are: _Res std::tr1::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void, _Class = Class, _ArgTypes = int]
/usr/include/c++/4.3/tr1_impl/functional:556: note: _Res std::tr1::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void, _Class = Class, _ArgTypes = int]
Pourtant, le j'ai le même problème lorsque classe :: membre est surchargé par les membres qui prend différents arguments ...