http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57899

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Reduced a bit more to only depend on std::bind

#include <functional>
using std::bind;
using std::placeholders::_1;

struct S { int i; };

struct P { S s; };

struct get_s
{
    const S& operator()(const P& p) const { return p.s; }
} gs;

int gi(const S& s) { return s.i; }

bool cmp(int, int) { return true; }

int main()
{
    P p{};
    auto f1 = bind(gs, _1);
    auto f2 = bind(gi, f1);
    auto f3 = bind(cmp, f2, 5);
    f3(p);
}

Reply via email to