Hello,

J'ai besoin d'une fonction pour générer des UID de manière thread-safe. Je me suis dis que je devais pouvoir faire ça avec un std::atomic :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
using uid_type = std::uint32_t;
 
uid_type getNextUID() {
	static std::atomic<uid_type> uid;
	return uid++;
}
Est-ce que c'est bon ? Est-ce que ça fait la même chose que cette version avec un mutex ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
uid_type getNextUID2() {
	static uid_type uid;
	static std::mutex mutex;
 
	std::lock_guard guard{mutex};
	return uid++;
}