no matching function for call to 'std::shared_ptr<int>::shared_ptr(int)'
时间: 2023-08-17 16:23:27 浏览: 441
c# 9.0新特性nint和Pattern matching的使用方法
这个错误通常是因为您在使用 `std::shared_ptr` 时,将一个非指针类型的值传递给了构造函数。 `std::shared_ptr` 的构造函数需要接受一个指针类型的参数。
例如,下面的代码会导致这个错误:
```
int i = 10;
std::shared_ptr<int> ptr(i); // 错误:不能将整型变量作为参数传递给 std::shared_ptr 的构造函数
```
正确的做法是将指针地址传递给构造函数,即:
```
int i = 10;
std::shared_ptr<int> ptr(new int(i)); // 正确:传递了指针地址给 std::shared_ptr 的构造函数
```
这样就能够顺利地创建一个 `std::shared_ptr` 类型的智能指针了。
阅读全文