
C++ unique_ptr解惑篇
发布日期:2021-05-07 16:07:32
浏览次数:18
分类:精选文章
本文共 669 字,大约阅读时间需要 2 分钟。
在使用unique_ptr
智能指针时,遇到“invalid application of ‘sizeof’ to incomplete type”错误,通常是因为编译器无法了解被指向对象的完整定义。以下是解决问题的详细步骤:
检查头文件包含情况:确保在使用unique_ptr
时,相关的头文件已经被包含。例如,在A.cpp
中使用unique_ptr<Test>
,则需要包含#include <Test.h>
。
前置声明与依赖管理:如果希望减少对依赖的头文件包含,可以在当前文件中进行前置声明,但需注意在声明时提供足够的信息以允许unique_ptr
正确计算大小。
使用extern
关键字:在前置声明中使用extern
关键字,例如:
extern class Test;
这样可以告知编译器Test
的存在,但不需要其定义,通常用于避免依赖关系。
手动管理unique_ptr
:如果不包含头文件,手动在代码中管理unique_ptr
,包括构造和析构操作,虽然不推荐,但可以作为临时解决方案。
检查编译器选项:确保编译器选项中没有限制前置声明或相关功能,必要时调整选项以支持前置声明。
使用using
声明:在使用unique_ptr
时,使用using
声明来显式指向Test
,例如:
using Test;std::unique_ptrtPtr_;
这样可以在不包含头文件的情况下使用Test
,但需确保Test
在链接时可见。
通过以上步骤,可以有效解决unique_ptr
使用中的大小计算错误,确保编译过程顺利进行。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月06日 10时47分39秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux网络编程系列(十二)--滑动窗口、拥塞控制、断线重连机制
2019-03-05
Deep residual learning for image recognition
2019-03-05
IO控制方式
2019-03-05
IO控制器
2019-03-05
LeetCode122.买卖股票的最佳时机2Golang版
2019-03-05
Java 知识点总结篇(2)
2019-03-05
Python 知识点总结篇(2)
2019-03-05
Python 知识点总结篇(3)
2019-03-05
Numpy 如何操作数组
2019-03-05
爬取网易科技滚动新闻
2019-03-05
vuex modules
2019-03-05
Java笔记:单链表
2019-03-05
phthon基本语法——温习
2019-03-05
sleep、wait、yield、join——简介
2019-03-05
web项目配置
2019-03-05
VTK:Medical之MedicalDemo2
2019-03-05
c语言(基本数据类型)实参与形参传值 用汇编理解
2019-03-05
基于单片机可控音乐流水灯控制设计-全套资料
2019-03-05
基于单片机简易信号误差分析设计-全套资料
2019-03-05