C#在C++中的默认关键字等价物?

vin*_*ani 7 c# c++ default

在C#中,我知道您可以使用default关键字将默认值指定为0到值类型,将null指定为引用类型,对于结构类型,相应地分配单个成员.据我所知,C++中没有默认值.在使用C++编程时,您将采用什么方法来获取与Generics的默认关键字相同的功能?

Jam*_*lis 11

假设类型是default-constructible,您可以使用值初始化.例如,

template <typename T>
T get()
{
    return T(); // returns a value-initialized object of type T
}
Run Code Online (Sandbox Code Playgroud)

如果类型不是默认构造的,通常需要提供默认使用.例如,

template <typename T>
T get(const T& default_value = T())
{
    return default_value;
}
Run Code Online (Sandbox Code Playgroud)

如果类型是default-constructible,则可以不带参数调用此函数.对于其他类型,您可以提供要返回的值.