나는 이것을하고 싶다 :
template <typename T>
struct S
{
...
static double something_relevant = 1.5;
};
그러나 나는 그 이후 something_relevant
로 완전한 유형이 아닙니다. 에 의존하지 T
않지만 기존 코드는의 정적 멤버에 의존합니다 S
.
S는 템플릿이므로 컴파일 된 파일에 정의를 넣을 수 없습니다. 이 문제를 어떻게 해결합니까?
c ++ 11부터 키워드 인라인이 변경되어 선언 시점에서 정적 변수를 초기화 할 수 있습니다. 따라서 이에 대한 선언은 "inline static double something_relevant = 1.5;"와 같습니다.
@ user8991265 C ++ 11이 아니라 C ++ 17 이후 인라인 변수를 사용할 수 있다고 생각합니다.
—
zupazt3
std::string
유형 에도 적용됩니다