SharedMutex concept implementation
Just a quick heads up about your use of leading underscores. This is discouraged because they are reserved by the standard.
You should find another way to mark variables as members (if you find it's necessary). I've seen a lot of people using trailing underscores for this. In my opinion trailing indentifiers are smarter as otherwise you will have to type whatever prefix you picked everytime you want to address a member variable (which also slows down autocomplete).