#include <mutex>
template <typename Mutex>
static std::lock_guard<Mutex> lock_guard(Mutex &mutex)
{
mutex.lock();
return {mutex,std::adopt_lock};
}
int main()
{
std::mutex m;
auto&& lock = lock_guard(m);
}
I2luY2x1ZGUgPG11dGV4PgoKdGVtcGxhdGUgPHR5cGVuYW1lIE11dGV4PgpzdGF0aWMgc3RkOjpsb2NrX2d1YXJkPE11dGV4PiBsb2NrX2d1YXJkKE11dGV4ICZtdXRleCkKewogIG11dGV4LmxvY2soKTsKICByZXR1cm4ge211dGV4LHN0ZDo6YWRvcHRfbG9ja307Cn0KCmludCBtYWluKCkKewogIHN0ZDo6bXV0ZXggbTsKICBhdXRvJiYgbG9jayA9IGxvY2tfZ3VhcmQobSk7Cn0=