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;
}
相关推荐
言乐613 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
金金计较.13 小时前
Go语言-3
java·开发语言·golang
张小凡vip14 小时前
python--爬虫--经验积累的遇到的坑
开发语言·爬虫·python
Wang's Blog14 小时前
Java框架快速入门: Spring Security+OAuth2之云服务集成与多因子认证设计
java·开发语言·spring
门思科技14 小时前
LoRaWAN 网络容量估算:一个 SX1302 网关到底能带多少设备
开发语言·网络·php
大草原的小灰灰15 小时前
Python基础语法
开发语言·python
无小道15 小时前
C++——列表初始化
c++·列表初始化
blueSatchel15 小时前
c++action 编写(ros-humble)
c++·ros2
泡泡鱼(敲代码中)16 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
老赵的博客17 小时前
c++面试之从虚函数表到Rtti一次性讲清楚
c++·qt