gpt4 book ai didi

c++ - 如何默认初始化静态类模板变量

转载 作者:行者123 更新时间:2023-11-30 03:36:47 25 4
gpt4 key购买 nike

在下面的代码中

#include <iostream>
#include <string>
#include <type_traits>

template<class T, typename = std::enable_if<std::is_default_constructible<T>::value>>
struct E {
static T var;
};

int main() {
std::cout << E<std::string>::var << std::endl;
}

我怎样才能拥有E<T>::var默认为 E 的每个模板实例构造?目前我收到链接器错误

/home/tE1MjB/ccEXSZtn.o: In function `main':
prog.cpp:(.text.startup+0x12): undefined reference to `E<std::string, std::enable_if<true, void> >::var'
collect2: error: ld returned 1 exit status

最佳答案

添加

template<class T, typename T2> T E<T, T2>::var{};

类定义之后。

Demo

关于c++ - 如何默认初始化静态类模板变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40514292/

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