roi_saumon
roi_saumon

Reputation: 604

Why is lock_guard a template?

I just learned about std::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.

Upvotes: 2

Views: 784

Answers (1)

wohlstad
wohlstad

Reputation: 28609

Using std::lock_guard<std::mutex> is indeed quite common.
But you can use std::lock_guard with other mutex types:

  1. Various standard mutex types, e.g.: std::recursive_mutex.
  2. 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().

Upvotes: 6

Related Questions