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;
}
相关推荐
jghhh013 分钟前
基于MATLAB的可见光通信系统仿真实现
开发语言·matlab
xiaoqider14 分钟前
C++模板进阶
开发语言·c++
yaonoran14 分钟前
【无标题】
java·开发语言·变量
康小庄20 分钟前
浅谈Java中的volatile关键字
java·开发语言·jvm·spring boot·spring·jetty
移幻漂流25 分钟前
C/C++并发编程详解:如何写出优秀的并发程序
c语言·开发语言·c++
余醉 | dtminer36 分钟前
R语言常见新手问题
开发语言·r语言
それども40 分钟前
为什么要加@ResponseBody
java·开发语言·spring boot
一只专注api接口开发的技术猿1 小时前
微服务架构下集成淘宝商品 API 的实践与思考
java·大数据·开发语言·数据库·微服务·架构
被星1砸昏头1 小时前
C++中的享元模式
开发语言·c++·算法
2501_944424121 小时前
Flutter for OpenHarmony游戏集合App实战之记忆翻牌配对消除
android·java·开发语言·javascript·windows·flutter·游戏