栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++开发的一些错误记录

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++开发的一些错误记录

1. 错误 C2664 “std::function<_Ret (int,int)>::function(std::nullptr_t) noexcept”: 无法将参数 1 从“_Ty”转换为“std::nullptr_t”

如这句代码: std::packaged_task tsk(std::bind(&FutureBase::countdown, this));

由于调用std::bind的时候,没有指定和函数参数匹配的占位符(std::placeholders),正确的写法是:

std::packaged_task tsk(std::bind(&FutureBase::countdown, this, std::placeholders::_1, std::placeholders::_2));

当然你可以用lambda而不用std::bind,如下所示:

std::packaged_task tsk([this](int a, int b) -> int { return countdown(a, b); });

2. 有未经处理的异常: Microsoft C++ 异常: std::future_error,位于内存位置 0x0000006990F9F2B0 处,错误机制如下代码所示:

std::packaged_task task([] { return 7; });

std::thread thr(std::move(task));

...

task();

这个错误导致程序中断。原因是task以及被std::move了.

3. std::mutex 实例被析构引发的错误:

void lock() {
        _Check_C_return(_Mtx_lock(_Mymtx()));// 这一行会引发的异常: 0xC0000005
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/937966.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号