c++ well-formed

这里用一个lambda来作为shared ptr的删除器,lambda没有做任何操作,保证这份数据的内存管理不受这个sharedptr影响。
编译器报错:static assertion failed due to requirement ***deleter expression is well-formed

所以lambda删除器接受的参数必须是sharedptr管理的对象类型。不过加上了noexcept不是必须的,不过显然这个删除器不会抛出异常,可以让编译器执行某些优化。

posted @ 2023-02-11 10:05  ijpq  阅读(58)  评论(0编辑  收藏  举报