【发布时间】:2021-10-27 05:11:18
【问题描述】:
我现在阅读了 libstdc++ 中的 unique_ptr 源代码。
public:
typedef _Tp* pointer;
typedef _Tp element_type;
typedef _Tp_Deleter deleter_type;
// Constructors.
unique_ptr()
: _M_t(pointer(), deleter_type())
{ static_assert(!std::is_pointer<deleter_type>::value,
"constructed with null function pointer deleter"); }
我不明白。“pointer()”是否调用构造函数?但“指针”是类型 _Tp* 的别名
【问题讨论】:
-
它调用了
_Tp*的默认构造函数,除了构造一个nullptr之外几乎没有任何作用。 -
很明显,原始基本类型支持与类相同的默认构造语法。但是编译器(或其他)比只写
nullptr有什么优势吗? -
这能回答你的问题吗? Do built-in types have default constructors?
标签: c++ pointers initialization unique-ptr default-constructor