gpt4 book ai didi

c++ - 类模板中的静态成员初始化

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:21:15 36 4
gpt4 key购买 nike

我想这样做:

template <typename T>
struct S
{
...
static double something_relevant = 1.5;
};

但我不能,因为 something_relevant 不是整数类型。它不依赖于 T,但现有代码依赖于它是 S 的静态成员。

由于 S 是模板,我不能将定义放在编译文件中。我该如何解决这个问题?

最佳答案

只需在标题中定义它:

template <typename T>
struct S
{
static double something_relevant;
};

template <typename T>
double S<T>::something_relevant = 1.5;

由于它是模板的一部分,与所有模板一样,编译器将确保它只定义一次。

关于c++ - 类模板中的静态成员初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45367675/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com