Considering follow codes
template<typename T>
struct Rx {
T* ipc;
operator T*() const {
return ipc; // implicit conversion to T*
}
};
struct IPC {
void doSomething();
};
struct Bundle {
Rx<IPC> rx1;
};
There are cases that is not easy to distinguish when you are using object of Rx or when you are using dereferencing of it