High level Bluetooth Low Energy API and radio abstraction layer
Fork of BLE_API by
Revision 957:15f5e9046dde, committed 2015-11-26
- 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.