Updated
Fork of BLE_API by
Diff: ble/FunctionPointerWithContext.h
- Revision:
- 924:f4a901a3e6cd
- Parent:
- 921:ea542e6519bb
- Child:
- 932:68a113707ba5
diff -r ca1964e56ddf -r f4a901a3e6cd ble/FunctionPointerWithContext.h --- a/ble/FunctionPointerWithContext.h Thu Nov 26 12:52:04 2015 +0000 +++ b/ble/FunctionPointerWithContext.h Thu Nov 26 12:52:04 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.