--- /dev/null
+namespace Xapian {
+ namespace Internal {
+ template < class T > class RefCntPtr {
+ public:
+ T *operator->() const;
+ T *get() const;
+ };
+ template < class T > inline T * RefCntPtr < T >::get() const {}
+ }
+
+ class iter {
+ public:
+ class Internal;
+ Xapian::Internal::RefCntPtr < Internal > internal;
+ };
+
+ bool operator == (const Xapian::iter &a, const Xapian::iter &b) {
+ return (a.internal.get() == b.internal.get());
+ };
+}
+
+bool equals(Xapian::iter const *self,
+ Xapian::iter const &other)
+{
+ return *self == other;
+}
+
+bool f() {
+ Xapian::iter *arg1, *arg2;
+ bool result;
+ try {
+ result = equals((Xapian::iter const *)arg1, (Xapian::iter const &)*arg2);
+ } catch(...) {}
+ return result;
+}