C++ 中的 typedef 和 using

  1. 语法: typedef 的语法相对固定,而 using 在C++11之后提供了更灵活的方式,可以定义模板别名等。
  2. 模板别名: 在C++11之后,using 可以用来定义模板别名,而 typedef 则无法做到这一点
  3. 作用域: 在命名空间中使用 usingtypedef 有一些差异,using 更符合命名空间的作用域规则,typedef 则没有这种作用域概念。

总的来说,using 更加现代化且灵活,尤其在C++11之后,推荐使用它来定义别名。

模板别名的例子:

cpp 复制代码
template <typename T> using PromisePtr = RefPtr<Promise<T>>;
//使用 模板类型别名:
template <typename TRet>
PromisePtr<TRet> unwrap(Promise<TRet>* p)
{
    return p;
}
template <typename TRet>
PromisePtr<TRet> unwrap(PromisePtr<TRet> p)
{
    return p;
}
相关推荐
鸿芯微控科技11 小时前
MFC质量流量控制器流量不准怎么排查?设定值、反馈值与参考流量对比,附Python代码
c++·python·mfc
拂拉氏11 小时前
【知识讲解】 让指针拥有“自我意识”?--C++智能指针相关内容讲解
c++·智能指针
大尚来也11 小时前
用 Python 自动整理文件、重命名、分类电脑文件夹
开发语言·python
CVer儿11 小时前
c++二级指针
开发语言·c++
mlidongfeng12 小时前
[AI][C++26] SIMD 编程模型思考
开发语言·c++·人工智能
梓䈑12 小时前
【用 Vibe Coding 实现的 C++17 在线判题系统】OpenCode 入门指南:从环境搭建到上下文管理
c++·ai编程
j7~12 小时前
【Linux】二十七.线程篇四《Linux多线程编程:线程互斥(互斥量的底层到封装)、线程安全和冲入、死锁》---详解
linux·开发语言·c++·线程安全·死锁·线程互斥·重入
啦啦啦啦啦zzzz12 小时前
贪心算法和动态规划
c++·算法·贪心算法·动态规划
刘名喜12 小时前
第09篇-协程基础-Kotlin异步编程
开发语言·kotlin·springboot
其实防守也摸鱼12 小时前
HackBar 工具完全指南:信息探测、漏洞验证与安全测试实战
开发语言·人工智能·学习·安全·网络安全·安全威胁分析·安全性测试