编译器错误C2664无法用std::make_shared转换参数。
创始人
2024-12-08 12:00:32
0

此错误通常是因为函数参数类型与 std::make_shared 创建的对象类型不匹配,可以通过显式转换或更改函数参数类型来解决。例如:

#include 

class MyClass {
public:
    MyClass(int num) : m_num(num) {}
    int m_num;
};

void myFunction(std::shared_ptr obj) {
    // do something
}

int main() {
    int num = 42;
    // 以下代码会引发 C2664 错误
    std::shared_ptr newObj = std::make_shared(num);
    myFunction(newObj);
    return 0;
}

在上述代码中,myFunction 函数期望的是一个 std::shared_ptr 类型的对象,但是 std::make_shared 创建的对象是一个 std::shared_ptr 类型的对象,两者类型不匹配,因此会导致编译器错误。可以将 myFunction 函数的参数类型改为 std::shared_ptr,或者在创建对象时使用显式转换来解决此问题:

int num = 42;
std::shared_ptr newObj = std::make_shared(static_cast(num));
// 或者
std::shared_ptr newObj = std::make_shared(static_cast(*new int(num)));
myFunction(newObj);

相关内容

热门资讯

wepoke透明挂黑科技!德州... 1、wepoke透明挂黑科技!德州wepower透视辅助(透明挂)we poker(其实真的有挂)(...
玩家实测!逍遥卡五星胡牌辅助器... 玩家实测!逍遥卡五星胡牌辅助器(辅助挂)原来是真的有挂(2022已更新)(哔哩哔哩);小薇(透视辅助...
微扑克ai机器人!微扑克有挂,... 微扑克ai机器人!微扑克有挂,微扑克有后台控制(原来真的是有挂),亲,有的,ai轻松简单,又可以获得...
wepoke辅助机器人!wep... WePoker透视辅助工具核心要点解析‌,wepoke辅助机器人!wepower软件靠谱,wePOK...
大神推荐!钱塘十三水辅助(透视... 大神推荐!钱塘十三水辅助(透视辅助)本来真的有挂(2023已更新)(哔哩哔哩)1、钱塘十三水辅助系统...
微扑克游戏辅助器!微扑克有挂,... 微扑克游戏辅助器!微扑克有挂,微扑克网页版辅助(一直是真的有挂)是一款可以让一直输的玩家,快速成为一...
WePoKe外 挂!wepok... 这是一款非常优秀的WepokE ia辅助检测软件,能够让你了解到WepokE中牌率当中全部隐藏参数,...
重大来袭!指尖跑得快能控制输赢... 重大来袭!指尖跑得快能控制输赢吗(辅助)一贯真的有挂(2020已更新)(哔哩哔哩);1、进入游戏-大...
微扑克辅助软件!微扑克有脚本(... 微扑克辅助软件!微扑克有脚本(透视)好像真的是有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...
wepoke黑科技!wepko... wepoke黑科技!wepkoe有外 挂,we辅助poker就是真的有挂,高科技教程(有挂解密)1、...