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;
}
相关推荐
游乐码几秒前
c#扩展方法
开发语言·c#
zmzb0103几秒前
C++课后习题训练记录Day109
开发语言·c++
sycmancia4 分钟前
C++——类的静态成员变量、静态成员函数
c++
wjs20245 分钟前
SQL AVG() 函数详解
开发语言
上单带刀不带妹11 分钟前
【Axios 实战】网络图片地址转 File 对象,附跨域解决方案
开发语言·前端·javascript·vue
有一个好名字17 分钟前
JAVA虚拟机-JVM
java·开发语言·jvm
一个处女座的程序猿O(∩_∩)O18 分钟前
Python多重继承详解
开发语言·python
SmartBrain20 分钟前
技术总结:VLLM部署Qwen3模型的详解
开发语言·人工智能·算法·vllm
_风华ts24 分钟前
C++智能指针
c++·智能指针
小冻梨66628 分钟前
ABC445 C - Sugoroku Destination题解
c++·算法·深度优先·图论·