Destructors of global variables are not called
Les mainteneurs répondent en général sous 1 jour
Évaluation
Cette issue n'a pas encore été évaluée.
Description
#include <iostream>
struct SideEffectTracker {
int name;
explicit SideEffectTracker(int tag) : name(tag) {
std::cout << "[CONSTRUCTOR] " << name << " initialized.\n";
}
~SideEffectTracker() {
std::cout << "[DESTRUCTOR] " << name << " destroyed.\n";
}
void touch() const {
std::cout << "[USAGE] " << name << " accessed.\n";
}
};
// 1. Global statics (Initialized before main() in order of declaration)
SideEffectTracker g_global1(1);
SideEffectTracker g_global2(2);
void run_local_statics() {
// 2. Function-local static (Lazy initialization: only runs on first call)
static SideEffectTracker s_local_static(3);
s_local_static.touch();
}
int main() {
std::cout << "=== Entering main() ===\n\n";
g_global1.touch();
std::cout << "\n-- First call to run_local_statics() --\n";
run_local_statics();
std::cout << "\n-- Second call to run_local_statics() --\n";
run_local_statics();
std::cout << "\n=== Exiting main() ===\n";
return 0;
// Static destructors run after this line in REVERSE order of construction
}
should print:
[CONSTRUCTOR] 1 initialized.
[CONSTRUCTOR] 2 initialized.
=== Entering main() ===
[USAGE] 1 accessed.
-- First call to run_local_statics() --
[CONSTRUCTOR] 3 initialized.
[USAGE] 3 accessed.
-- Second call to run_local_statics() --
[USAGE] 3 accessed.
=== Exiting main() ===
[DESTRUCTOR] 3 destroyed.
[DESTRUCTOR] 2 destroyed.
[DESTRUCTOR] 1 destroyed.
- Langage dominant
- Rust
- Étoiles
- 310
- Forks
- 18
- Merge moyen
- 10 h 18 min
- PR mergées (30 j)
- 125
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Cpp2Rust/cpp2rust
-
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 Une demi-journée Accessibilité débutants 55/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 56/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 1-2 jours Accessibilité débutants 35/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 56/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de Cpp2Rust/cpp2rust
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
ScoopInstaller/Extras#19275 ·
Les mainteneurs répondent en général sous 1 jour
-
area:plugins kind:bug priority:p2 ready
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
bug priority: medium ui
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
storytold/gridcraft#3496 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bip39: Mnemonic::new_from_phrase rejects phrases with extra or non-space whitespacePeut-être pris @chukwudiikeh l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
Les mainteneurs répondent en général sous 1 jour