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;
}
相关推荐
用户8055336980313 小时前
现代Qt开发教程(新手篇)1.10——进程
c++·qt
海参崴-13 小时前
C++ STL篇 AVL树的模拟实现
开发语言·c++
汉克老师13 小时前
GESP2025年6月认证C++五级( 第二部分判断题(1-10))
c++·贪心算法·分治算法·线性筛法·gesp5级·gesp五级
Cyber4K13 小时前
【Python专项】基础语法(2)
开发语言·python
6Hzlia13 小时前
【Hot 100 刷题计划】 LeetCode 15. 三数之和 | C++ 排序+双指针
c++·算法·leetcode
某人辛木13 小时前
JDK安装配置
java·开发语言
fox_lht13 小时前
第十章 通用集合
开发语言·后端·算法·rust
小王师傅6613 小时前
【Java结构化梳理】泛型-初步了解-下
java·开发语言
vegetablesssss13 小时前
VTK切割图
c++·qt·vtk