我有一个类模板,它使用类内成员初始化程序将 unique_ptr 分配给 nullptr。如果我使用MyClass(){}
,一切都很好。如果我使用MyClass() = default
,我会得到:
conversion from 'std::nullptr_t' to non-scalar type 'std::unique_ptr<A>' requested
这是一个无法使用 g++ 4.8.4 编译的最小示例:
#include <memory>
class A{};
template <typename T>
class Test
{
std::unique_ptr<A> data = nullptr;
public:
//Test() {} // works fine
Test() = default; // compiler error
};
int main()
{
Test<float> test;
}
有任何想法吗?