Я хотел бы сделать это:
template <typename T>
struct S
{
...
static double something_relevant = 1.5;
};
но я не могу, потому что something_relevant
это не цельный тип. Это не зависит от T
, но существующий код зависит от того, является ли он статическим членом S
.
Поскольку S является шаблоном, я не могу поместить определение в скомпилированный файл. Как мне решить эту проблему?
Начиная с c ++ 11 ключевое слово inline изменилось, так что статические переменные могут быть инициализированы в точке объявления. Таким образом, объявление для этого будет выглядеть следующим образом: «inline static doublething_relevant = 1.5;»
@ user8991265 Я считаю, что встроенные переменные доступны начиная с C ++ 17, а не C ++ 11.
—
zupazt3
std::string
типу