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;
}
相关推荐
feifeigo12319 小时前
基于MATLAB的V-BLAST结构BER仿真
开发语言·matlab
lly20240619 小时前
Perl 数据库连接
开发语言
小白-Tester19 小时前
2026最新Postman安装教程[简单易懂]附安装包
开发语言·lua
春日见20 小时前
端到端大模型自动驾驶
java·开发语言·驱动开发·docker·自动驾驶·计算机外设
A.A呐20 小时前
【QT第三章】常用控件2
开发语言·qt
白云如幻20 小时前
【JDBC】集合、反射和泛型复习-3
java·开发语言·jdbc
笨笨马甲20 小时前
Qt 实现三维坐标系的方法
开发语言·qt
bugcome_com20 小时前
C# 高级集合使用示例
开发语言·c#
sycmancia20 小时前
C++——动态内存分配、关于虚函数、关于继承中的强制类型转换
开发语言·c++
Mao_Hui20 小时前
Unity3d实时读取Modbus RTU数据
开发语言·嵌入式硬件·unity·c#