OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.old-deja/] [g++.mike/] [p3060d.C] - Rev 699

Compare with Previous | Blame | View Log

// { dg-do run  }
// This is a test case to make sure the explicit cast on a pointer to
// a member function works ok.
// prms-id: 3060

extern "C" int printf(const char *, ...);

class Object;

typedef void (Object::*VoidObjMemberFunc)(Object *tracker, void *ap);

class Object {
public:
  int         foo;
};

class Clipper: public Object {
public:
  int         bar;
  void        Feedback(Object*, void*);
};
void Clipper::Feedback(Object *tracker, void *ap) {
  printf("Doing feedback\n");
}

void vfunc(VoidObjMemberFunc of, Object *op, void *v1) {
  (op->*of)(op, v1);
}

int main() {
  Object      o;

  vfunc((VoidObjMemberFunc)&Clipper::Feedback, &o, 0);
  return 0;
}

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.