Lo standard C++ richiede che l'inizializzazione dinamica di variabili statiche non locali sia eseguita nello stesso thread che chiama main()
?Lo standard C++ richiede che l'inizializzazione dinamica delle variabili statiche sia eseguita nel thread principale?
Più specificamente, in C++ 11, è std::this_thread::get_id()
garantito per restituire lo stesso risultato in inizializzatori statici e all'interno di main()
?
Edit:
Ancora più specificamente, dato il codice seguente:
#include <iostream>
#include <thread>
static std::thread::id id = std::this_thread::get_id();
int main()
{
std::cout << id << "\n";
std::cout << std::this_thread::get_id() << "\n";
return 0;
}
sono i due ID filetto emessi necessari/garantiti per abbinare?
inizializzazione statica ha una definizione molto specifico in C++: è zero inizializzazione e inizializzazione costante raggruppate insieme e non possono essere osservate da un programma. Quello che stai chiedendo è chiamato inizializzazione dinamica. – hvd
Sembra che ci possa essere una domanda dietro questa domanda. Cosa stai cercando di realizzare? –
No, è una domanda accademica (ispirata al comportamento del mondo reale osservato, ma in un contesto in qualche modo diverso). – Jeremy