Предположим, у меня есть класс T, в котором
Может ли фиаско статической инициализации C ++ разрушить мою программу? Я так не думаю, потому что даже если один из статических экземпляров не инициализирован перед использованием, это не имеет значения, потому что объекты T не имеют состояния.
Я заинтересован в том, чтобы сделать это для классов, подобных перечислению, например:
// Switch.h
class Switch {
public:
static Switch const ON;
static Switch const OFF;
bool operator== (Switch const &s) const;
bool operator!= (Switch const &s) const;
private:
Switch () {}
Switch (Switch const &); // no implementation
Switch & operator= (Switch const &); // no implementation
};
// Switch.cpp
Switch const Switch::ON;
Switch const Switch::OFF;
bool Switch::operator== (Switch const &s) const {
return this == &s;
}
bool Switch::operator!= (Switch const &s) const {
return this != &s;
}