鉴于以下情况:
{
std::unique_ptr<char[]> foo;
foo = std::make_unique<char[]>(100);
foo = std::make_unique<char[]>(200);
}
Run Code Online (Sandbox Code Playgroud)
在第二次调用中重新分配 foo 时,第一次调用 make_unique 时分配的内存是否被释放?
我最近浏览了一个 GCC 头文件,发现了这个:
struct defer_lock_t { explicit defer_lock_t() = default; };
为什么构造函数声明为显式而不是空的struct defer_lock_t {}?
我的理解是这种类型与constexpr用于构造函数重载的a一起使用。我对explicit关键字有点模糊,但我想我有点了解它的功能。