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;
}
相关推荐
hqwest8 分钟前
码上通QT实战04--主窗体布局
开发语言·css·qt·布局·widget·layout·label
Frank_refuel11 分钟前
C++之内存管理
java·数据结构·c++
leiming612 分钟前
c++ qt开发第一天 hello world
开发语言·c++·qt
奋斗者1号18 分钟前
MQTT连接失败定位步骤
开发语言·机器学习·网络安全
33三 三like26 分钟前
毕设任务分析
开发语言
@小码农28 分钟前
6547网:202512 GESP认证 C++编程 一级真题题库(附答案)
java·c++·算法
vyuvyucd31 分钟前
Linux线程编程:POSIX与C++实战指南
java·开发语言
Kratzdisteln34 分钟前
【MVCD 3】
开发语言·php
癫狂的兔子34 分钟前
【Python】【NumPy】random.rand和random.uniform的异同点
开发语言·python·numpy
TDengine (老段)35 分钟前
TDengine C/C++ 连接器入门指南
大数据·c语言·数据库·c++·物联网·时序数据库·tdengine