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;
}
相关推荐
资深流水灯工程师6 小时前
PySide6 QMainWindow与QWidget秒解
开发语言·python
字节高级特工6 小时前
智能指针原理与使用场景全解析
开发语言·c++·算法
码界索隆6 小时前
Python转Java系列:面向对象基础
java·开发语言·python
逻辑星辰6 小时前
x-ds-pow-response逆向分析
开发语言·人工智能·python·深度学习·算法
AI科技星7 小时前
《全域数学/数术工坊》体系总览
c语言·开发语言·汇编·electron·概率论
范什么特西7 小时前
Maven中dependencies和dependencyManagement区别
java·开发语言·maven
techdashen7 小时前
Rust 项目进展月报:2026 年 1 月
开发语言·后端·rust
AI行业学习7 小时前
CC‑Switch v3.16.1 免费下载(Windows+macOS+Linux)、使用方法【2026.6.11】
linux·开发语言·windows·python·macos·前端框架·html
插件开发7 小时前
CUDA11-VS2015安装-工具链测试-Helloworld程序
c++·gpu·cuda
攻城狮Soar7 小时前
STL源码解析之deque
开发语言·c++