1
0
Fork 0
arangodb/3rdParty/boost/1.61.0/libs/python/pyste/tests/virtual.h

42 lines
807 B
C++

/* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
distribution is subject to the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
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(); }
}