High level Bluetooth Low Energy API and radio abstraction layer
Fork of BLE_API by
Diff: ble/FunctionPointerWithContext.h
- Revision:
- 957:15f5e9046dde
- Parent:
- 953:f6eb43f524b2
- Child:
- 965:212c16f6247f
diff -r 21f1330d61de -r 15f5e9046dde ble/FunctionPointerWithContext.h --- 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.