| module d_nativepointers_runnme; |
| |
| import d_nativepointers.d_nativepointers; |
| import d_nativepointers.SomeClass; |
| import d_nativepointers.SWIGTYPE_p_OpaqueClass; |
| import d_nativepointers.SWIGTYPE_p_p_SomeClass; |
| import d_nativepointers.SWIGTYPE_p_p_f_p_p_int_p_SomeClass__void; |
| |
| extern(C) alias void function(int**, char***) GType; |
| |
| void main() { |
| check!(a, int*); |
| check!(b, float**); |
| check!(c, char***); |
| check!(d, SomeClass); |
| check!(e, SWIGTYPE_p_p_SomeClass); |
| check!(f, SWIGTYPE_p_OpaqueClass); |
| check!(g, GType); |
| check!(h, SWIGTYPE_p_p_f_p_p_int_p_SomeClass__void); |
| |
| { |
| static assert(is(int* function(int*) == typeof(&refA))); |
| int v = 2; |
| assert(*refA(&v) == 2); |
| } |
| |
| { |
| static assert(is(float** function(float**) == typeof(&refB))); |
| float v = 1.0; |
| float* p = &v; |
| assert(**refB(&p) == 1.0); |
| } |
| } |
| |
| void check(alias F, T)() { |
| static assert(is(T function(T) == typeof(&F))); |
| assert(F(null) is null); |
| } |