gpt4 book ai didi

c++ - 所有类型的零值?

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

在 C++11 中,有没有一种方法可以将算术类型和类类型的值初始化为零(算术类型在运行时绝对没有开销)?

template<typename T> void myFunction(T& x)
{
x = 0; // How to make this works for T = double but also for T = std::string ?
}

最佳答案

您可以使用默认构造函数来“清除”变量:

template<class T>
void clear(T &v)
{
v = T();
}

这将适用于所有原始类型、指针和具有默认构造函数赋值运算符的类型(默认情况下所有类都将具有,除非被告知不要这样做,或者它们被保护/私有(private))。

关于c++ - 所有类型的零值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11901934/

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