gpt4 book ai didi

c++ - 如何初始化模板化类型以将 POD 数据归零或默认构造非 POD 数据?

转载 作者:搜寻专家 更新时间:2023-10-31 01:39:19 25 4
gpt4 key购买 nike

给定 C++-03 中的模板化 C++ 函数:

template <typename data>
void example(data arg) {
// How to get POD zero initialized and non-POD, default constructor?
data x();
...
}

如果模板化参数是 POD(例如,int 得到一个 0float 得到一个 0.0,我怎样才能将它清零 等),或者对于非 POD,使用其默认构造函数?

我看到类(class)成员,这被处理为 explained here与:

struct X
{
int x;
};

X x; //x.x is not initialized
X y = X(); //y.x is 0

但是在这种情况下,变量不是类的成员,那么如何相应地得到初始化一个POD类型变量并默认构造一个非POD类型变量的效果呢?

最佳答案

您可以使用const T& data = T();。这可以保证避免复制,这样 T 将被值初始化,这是需要它的类型的默认构造,或者所有其他类型的 0。

关于c++ - 如何初始化模板化类型以将 POD 数据归零或默认构造非 POD 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31360924/

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