int main() { Proxy<Item> item; item->foo(); item->bar(); Proxy<WithMutex<std::string>> safe; safe->empty(); }