error: could not convert 'nullptr' from 'std::nullptr_t' to 'std::set<void*>' return nullptr; ^~~~~~~
时间: 2024-02-09 11:09:55 浏览: 19
这个错误是因为你试图将一个空指针转换为 `std::set<void*>` 类型,但是这两种类型是不兼容的。你需要将 `nullptr` 替换为一个空的 `std::set<void*>` 对象,例如:
```cpp
std::set<void*> my_set;
// do something with my_set
return my_set;
```
或者,如果你想要返回一个空的 `std::set<void*>` 对象,可以使用默认构造函数:
```cpp
return std::set<void*>();
```
这样就不会出现类型不兼容的错误了。
相关问题
error: could not convert ‘nullptr’ from ‘std::nullptr_t’ to ‘QSharedPointer<QEvent>’
这个错误通常是因为在将 `nullptr` 转换为 `QSharedPointer<QEvent>` 时出错。可能是因为 `QSharedPointer<QEvent>` 的构造函数参数不正确导致的。请检查你的代码,确保传递给构造函数的参数类型正确,或者尝试使用其他类型的构造函数。如果你有更详细的代码和上下文信息,我可以更好地帮助你解决这个问题。
std::shared_ptr<T>::shared_ptr(std::nullptr_t) noexcept
引用中提到,std::shared_ptr<T>::shared_ptr(std::nullptr_t) noexcept是一个构造函数,它接受一个std::nullptr_t作为参数。这个构造函数创建了一个空的std::shared_ptr对象。在这种情况下,该指针不指向任何有效的对象。
由于std::nullptr_t表示空指针,这意味着该构造函数创建了一个不持有任何资源的std::shared_ptr对象。这个构造函数是为了满足一些特定需求而设计的,比如在某些情况下需要创建一个空的std::shared_ptr对象。
需要注意的是,这个构造函数是不抛出异常的(noexcept),因此在使用时不需要担心异常的发生。
所以,std::shared_ptr<T>::shared_ptr(std::nullptr_t) noexcept是用来创建一个空的std::shared_ptr对象的构造函数。