I just learned about lock_guard and I was wondering why it is a template. Until now I have only seen std::lock_guard<std::mutex>
with std::mutex
inside the angle brackets.
CodePudding user response:
Using std::lock_guard<std::mutex>
is indeed quite common.
But you can use std::lock_guard
with other mutex types:
- Various standard mutex types, e.g.:
std::recursive_mutex
. - Your own mutex type. You can use any type, as long as it is a
BasicLockable
, i.e. it supports the required methods:lock()
,unlock()
.