namespace messaging { class receiver { queue q; public: operator sender() { return sender(&q); } dispatcher wait() { return dispatcher(&q); } }; } // namespace messaging