mirror of
https://github.com/boostorg/python.git
synced 2026-01-22 17:32:55 +00:00
- Added a new function, no_override. When a member function is specified as "no_override", no virtual wrappers are generated for it, improving performance and letting the code more clean. - There was a bug in which the policy of virtual member functions was being ignored (patch by Roman Sulzhyk). [SVN r18814]
37 lines
573 B
C++
37 lines
573 B
C++
namespace virtual_ {
|
|
|
|
struct C
|
|
{
|
|
public:
|
|
virtual int f()
|
|
{
|
|
return f_abs();
|
|
}
|
|
|
|
virtual void bar(int) {}
|
|
virtual void bar(char*) {}
|
|
|
|
const char* get_name()
|
|
{
|
|
return name();
|
|
}
|
|
virtual int dummy() { return 0; }
|
|
|
|
protected:
|
|
virtual int f_abs() = 0;
|
|
|
|
private:
|
|
virtual const char* name() { return "C"; }
|
|
};
|
|
|
|
struct D
|
|
{
|
|
virtual int dummy() { return 0; }
|
|
};
|
|
|
|
inline int call_f(C& c) { return c.f(); }
|
|
inline int call_dummy(C* c) { return c->dummy(); }
|
|
inline int call_dummy(D* d) { return d->dummy(); }
|
|
|
|
}
|