mirror of https://gitee.com/bigwinds/arangodb
58 lines
761 B
C++
58 lines
761 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)
|
|
*/
|
|
#ifndef OPAQUE_H
|
|
#define OPAQUE_H
|
|
|
|
#include <iostream>
|
|
|
|
namespace opaque {
|
|
|
|
|
|
struct C {
|
|
C(int v): value(v) {}
|
|
int value;
|
|
};
|
|
|
|
|
|
inline C* new_C()
|
|
{
|
|
return new C(10);
|
|
}
|
|
|
|
inline C* new_C_zero()
|
|
{
|
|
return new C(0);
|
|
}
|
|
|
|
inline int get(C* c)
|
|
{
|
|
return c->value;
|
|
}
|
|
|
|
struct D {
|
|
D(double v): value(v) {}
|
|
double value;
|
|
};
|
|
|
|
struct A
|
|
{
|
|
D* new_handle()
|
|
{
|
|
return new D(3.0);
|
|
}
|
|
|
|
double get(D* d)
|
|
{
|
|
return d->value;
|
|
}
|
|
|
|
int f(int x=0) { return x; }
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|