У меня есть класс, который должен иметь член класса static
пользовательского шаблонного класса с конструктором не по умолчанию. У меня проблема с инициализацией этого члена:
template <typename T> class Value{
T value;
private:
Value(T initialValue) : value(initialValue){
std::cout << "VALUE: value inited" << std::endl;
}
friend class Values;
};
class Values{
public:
static Value<double>& testValue() = Value<double>::value(0.0);
};
Мне известно о "проблеме статического порядка инициализации" по этой ссылке:
https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use
РЕШЕНИЕby @uneven_mark -> Инициализировать статические переменные в классе C ++?
class Values{
public:
static Value<double> testValue();
};
Value<double> Values::testValue = 0.0;