Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

std::mem_fun-trøbbel

3 views
Skip to first unread message

Stein Gulbrandsen

unread,
Oct 18, 2008, 8:29:32 PM10/18/08
to
Hallo.
Jeg har to problemer med dette programmet:

----------------- %< -------------------------
#include <algorithm>
#include <functional>
#include <vector>

class B{};

class A {
public:
void f(int) const {}
void f(const B&) const {}
};

int main() {
std::vector<A> vec;
std::for_each(vec.begin(), vec.end(),
bind2nd(std::mem_fun_ref(&A::f), B()));
return 0;
}
----------------- %< -------------------------

1) Tvetydighet i hvilken f() som skal kalles
2) f(const B&) kan ikke brukes fordi det lages referanse til referanse.

Begge overrasker meg litt. 1) fordi jeg ville tro at kompilatoren
har nok informasjon til å vite hvilke argumenter f kalles med, 2)
fordi det begrenser anvendelsen til funksjoner som kopierer
argumementet.

Er det noe lettvint jeg kan gjøre med bind_2nd eller mem_fun_ref
for å fjerne tvetydigheten og/eller generering av referanse til
referanse?

--
mail: echo 2573598220386708649153854147564528964895403631P|dc

0 new messages