High level Bluetooth Low Energy API and radio abstraction layer

Dependencies:   nRF51822

Dependents:   LinkNode_LIS3DH

Fork of BLE_API by Bluetooth Low Energy

Files at this revision

API Documentation at this revision

Comitter:
rgrover1
Date:
Thu Nov 26 12:52:33 2015 +0000
Parent:
956:21f1330d61de
Child:
958:9da2140ecec8
Commit message:
Synchronized with git rev 57e69cb0
Author: Vincent Coubard
Add safe bool conversion to ninic function pointer semantic

Changed in this revision

ble/FunctionPointerWithContext.h Show annotated file Show diff for this revision Revisions of this file
--- a/ble/FunctionPointerWithContext.h	Thu Nov 26 12:52:33 2015 +0000
+++ b/ble/FunctionPointerWithContext.h	Thu Nov 26 12:52:33 2015 +0000
@@ -111,6 +111,19 @@
         }
     }
 
+    typedef void (FunctionPointerWithContext::*bool_type)() const;
+
+    /** 
+     * implementation of safe bool operator
+     */
+    operator bool_type() const {
+        if(_function || _memberFunctionAndPointer._object) { 
+            return &FunctionPointerWithContext::trueValue;
+        }
+
+        return 0;
+    }
+
     /**
      * Set up an external FunctionPointer as a next in the chain of related
      * callbacks. Invoking call() on the head FunctionPointer will invoke all
@@ -156,6 +169,12 @@
         }
     }
 
+    /**
+     * @brief True value used in conversion to bool, this function is useless 
+     * beside this usage
+     */
+    void trueValue() const {}
+
     struct MemberFunctionAndPtr {
         /*
          * Forward declaration of a class and a member function to this class.