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;
}
相关推荐
游客5201 分钟前
设计模式-结构型-桥接模式
开发语言·python·设计模式·桥接模式
Pandaconda6 分钟前
【新人系列】Python 入门(二十五):Socket 网络编程
开发语言·网络·笔记·后端·python·面试·网络编程
风_流沙15 分钟前
【python基础】python中copy用法
开发语言·python
萌の鱼26 分钟前
leetcode 53. 最大子数组和
数据结构·c++·算法·leetcode
水水阿水水31 分钟前
第二章:面向对象之封装(一)
开发语言·c++·算法
Yang-Never37 分钟前
Canvas->Bitmap绘制
android·java·开发语言·kotlin·android studio·idea
曦月合一1 小时前
java中日期如何比大小
java·开发语言·后端
初学者丶一起加油1 小时前
C语言基础:野指针、空指针、空悬指针
java·linux·c语言·开发语言·数据结构·算法·vim
L_09071 小时前
【C】编译与链接
c语言·开发语言
ZWZhangYu1 小时前
【Arthas命令实践】heapdump实现原理
java·开发语言·python