I recently came across this article: https://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf I'm curious to know if the problems discussed in the article are still relevant when considering the introduction of C++17's inline variable feature.
As C++17 brought new features and improvements, particularly the ability to declare inline variables, I wonder if some of the issues addressed in the 2004 article have been mitigated or changed by this enhancement.
Additionally, I am interested in implementing the Singleton design pattern in C++17 and want to ensure that I follow the best practices and leverage the latest language features. Could someone provide insights into how C++17's inline variables might affect the problems presented in the 2004 article?
Furthermore, I would appreciate guidance on the most efficient and robust way to implement the Singleton pattern in C++17. Since inline variables are now available, I'm curious if they can play a role in the Singleton implementation for better performance and thread safety.
Any help, clarifications, or code examples related to both C++17's inline variable and Singleton pattern implementation would be highly valuable. Thank you in advance!
Singleton* Singleton::instance () {
Singleton* tmp = pInstance;
... // insert memory barrier
if (tmp == 0) {
Lock lock;
tmp = pInstance;
if (tmp == 0) {
tmp = new Singleton;
... // insert memory barrier
pInstance = tmp;
}
}
return tmp;
}
Aucun commentaire:
Enregistrer un commentaire