std::lock_guard vs std::scoped_lock