Если у меня есть простой тип данных в качестве глобальной переменной - например, логический флаг;в частности, то, что не имеет деструктора - остается ли эта переменная надежной даже во время глобального разрушения?Или это не гарантировано?
Например, будет ли четко определен результат для следующего кода?
Flag.h:
void SetFlagState(bool flag);
bool GetFlagState();
Flag.cpp:
#include <Flag.h>
namespace { // local declarations
bool g_flag;
}
void SetFlagState(bool flag)
{
g_flag = flag;
}
bool GetFlagState()
{
return g_flag;
}
Основной:
#include <iostream>
#include <Flag.h>
class FlagChecker
{
public:
~FlagChecker()
{
std::cout << "Flag value: " << GetFlagState() << std::endl;
}
};
FlagChecker g_FlagChecker; // global instance; dtor will be called on exit
int main()
{
SetFlagState(true);
}