From 8138a68a75286eebc04557019ab0f5947d78eb99 Mon Sep 17 00:00:00 2001
From: Boris Kolpackov <boris@codesynthesis.com>
Date: Thu, 30 Jul 2015 17:09:36 +0200
Subject: Try to work around xlC 11.1 warning/errors

---
 odb/details/function-wrapper.hxx | 5 ++++-
 odb/details/function-wrapper.ixx | 7 -------
 odb/details/shared-ptr.hxx       | 3 ++-
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/odb/details/function-wrapper.hxx b/odb/details/function-wrapper.hxx
index 5615fca..16dd0b7 100644
--- a/odb/details/function-wrapper.hxx
+++ b/odb/details/function-wrapper.hxx
@@ -65,7 +65,10 @@ namespace odb
       typedef void (function_wrapper<F>::*bool_convertible) ();
       void true_value () {}
 
-      operator bool_convertible () const;
+      operator bool_convertible () const
+      {
+        return function != 0 ? &function_wrapper<F>::true_value : 0;
+      }
 
     public:
       F* function;
diff --git a/odb/details/function-wrapper.ixx b/odb/details/function-wrapper.ixx
index 58ede04..2117847 100644
--- a/odb/details/function-wrapper.ixx
+++ b/odb/details/function-wrapper.ixx
@@ -36,12 +36,5 @@ namespace odb
       swap (const_cast<function_wrapper<F>&> (x));
       return *this;
     }
-
-    template <typename F>
-    inline function_wrapper<F>::
-    operator bool_convertible () const
-    {
-      return function != 0 ? &function_wrapper<F>::true_value : 0;
-    }
   }
 }
diff --git a/odb/details/shared-ptr.hxx b/odb/details/shared-ptr.hxx
index 2bb8efc..bb21386 100644
--- a/odb/details/shared-ptr.hxx
+++ b/odb/details/shared-ptr.hxx
@@ -16,7 +16,8 @@ namespace odb
   namespace details
   {
     template <typename X>
-    class shared_ptr: bits::counter_ops<typename bits::counter_type<X>::r, X>
+    class shared_ptr:
+      private bits::counter_ops<typename bits::counter_type<X>::r, X>
     {
       typedef bits::counter_ops<typename bits::counter_type<X>::r, X> base;
 
-- 
cgit v1.1