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;
}
相关推荐
xiaohe074 分钟前
超详细 Python 爬虫指南
开发语言·爬虫·python
嗑嗑嗑瓜子的猫18 分钟前
Java!它值得!
java·开发语言
xiaoshuaishuai841 分钟前
C# GPU算力与管理
开发语言·windows·c#
lsx2024061 小时前
SVN 创建版本库
开发语言
xiaotao1311 小时前
01-编程基础与数学基石:Python错误与异常处理
开发语言·人工智能·python
墨尘笔尖1 小时前
最大最小值降采样算法的优化
c++·算法
皮卡蛋炒饭.2 小时前
线程的概念和控制
java·开发语言·jvm
John.Lewis2 小时前
Python小课(1)认识Python
开发语言·python
一只大袋鼠2 小时前
MyBatis 入门详细实战教程(一):从环境搭建到查询运行
java·开发语言·数据库·mysql·mybatis
sonnet-10292 小时前
函数式接口和方法引用
java·开发语言·笔记