首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C ++ 11中“typedef”和“using”有什么区别?

C ++ 11中“typedef”和“using”有什么区别?

提问于 2017-12-20 02:29:53
回答 2关注 0查看 1.4K

"知道在C ++ 11中,们现在可以使用using写入类型别名,如typedefs:

typedef int MyInt;

据所知,相当于:

using MyInt = int;

这种新的语法来自于努力去表达“ template typedef”:

template< class T > using MyType = AnotherType< T, MyAllocatorType >;

但是,在前两个非模板的例子中,标准还有其他的细微差别吗?例如,typedefs以“弱”方式进行别名。也就是说,它不会创建新的类型,而只是一个新的名称(这些名称之间的转换是隐含的)。

它是一样的using还是它产生一个新的类型?有什么区别?"

回答 2

帅的惊动我国

发布于 2017-12-20 03:14:32

除此之外,它们基本上是一样的

骑牛看晨曦

提问者

发布于 2017-12-20 03:14:02

在使用中的模板中使用时的语法有优势。如果您需要抽象类型,而且还需要保留模板参数以后可以指定。你应该写这样的东西。

代码语言:txt
AI代码解释
复制
template <typename T> struct whatever {};
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
template <typename T> struct rebind
代码语言:txt
AI代码解释
复制
{
代码语言:txt
AI代码解释
复制
  typedef whatever<T> type; // to make it possible to substitue the whatever in future.
代码语言:txt
AI代码解释
复制
};
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
rebind<int>::type variable;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
template <typename U> struct bar { typename rebind<U>::type _var_member; }

但是使用语法简化了这个用例。

代码语言:txt
AI代码解释
复制
template <typename T> using my_type = whatever<T>;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
my_type<int> variable;
代码语言:txt
AI代码解释
复制
template <typename U> struct baz { my_type<U> _var_member; }
和开发者交流更多问题细节吧,去 写回答
相关文章
C++11 的 typedef 和 using 有什么区别
typedef 和 using 除了 using 还可以在模板中使用,其它的都是等同的。
ClearSeve
2022/02/10
5820
C++ 的 struct 和 typedef struct 有什么区别
C 标准(C89 §3.1.2.3, C99 §6.2.3, C11 §6.2.3)把不同类型的标识符(identifier)分到不同的命名空间(namespace)。
ClearSeve
2022/02/10
1.2K0
typedef vs using
C语言支持类型别名typedef,显然,CPP也支持咯。不过自CPP11(也称之为Modern CPP)开始,引入了using关键字用以表示类型别名。
高性能架构探索
2023/09/05
1970
typedef vs using
c++中typename、typedef以及using关键字用法
在c++的标准库中,因为类继承关系比较复杂和模板使用比较多的原因,源代码中充斥着typename、typedef和using这三个关键字,所以在继续剖析标准库源码之前,今天就来介绍一下这三个关键字的作用。
cpp加油站
2021/06/07
1.1K0
C# const 和 readonly 有什么区别
在写常量的时候,是选择使用 const 还是 static readonly 是一个让人难以决定的问题,本文告诉大家这两个方法的区别。
林德熙
2018/09/19
1.1K0
C# const 和 readonly 有什么区别
C# const 和 readonly 有什么区别
在写常量的时候,是选择使用 const 还是 static readonly 是一个让人难以决定的问题,本文告诉大家这两个方法的区别。
林德熙
2022/08/04
2960
c++和c语言之间有什么区别
  C语言是一种古老而又经久不衰的计算机程序设计语言,大约诞生于上个世纪60年代。由于它的设计有很多优点,多年以来深受广大程序设计人员的喜爱,并逐渐 淘汰了很多其它程序设计语言。我们平时使用的大多数软件都是用C语言开发的。
诸葛青云
2019/11/11
2.4K0
c++和c语言之间有什么区别
C语言 | typedef
按定义变量的方式,把变量名换上新类型名,并且在最前面加“typedef”,就声明了新类型名代表原来的类型。
小林C语言
2021/05/11
1K0
C语言 | typedef
C语言 | typedef
这道理放在C语言学习上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。
小林C语言
2021/05/28
5960
C语言 | typedef
Java和C语言到底有什么区别?
Java和C语音的区别可以说是我们许多同学来咨询的重点困惑了,U妹找来了优就业研究院的老师来深入浅出地讲解一下,Java和C到底哪儿不一样!
诸葛青云
2019/06/29
2.9K0
Java和C语言到底有什么区别?
C语言的struct和typedef struct
分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef:
狼啸风云
2022/11/21
8900
32.C++-11版本推荐使用using定义别名(替代typedef)
大家都知道,在 C++中可以通过 typedef 重定义一个类型: typedef unsigned int uint_t; 被重定义的类型并不是一个新的类型,仅仅只是原有的类型取了一个新的名字。 但是不能用于模版别名,所以C++11版本推荐,通过using来代替typedef 示例如下所示: template<typename T> class Test { public: Test() { std::cout << "A " << typeid(T).name() <<
诺谦
2020/12/09
1K0
C语言typedef和其他数据形式
1.为基本数据类型定义新的类型名 比如跨平台时,有的机子不支持long double,但有需要高精度的一个类型参与计算,那就可以进行如下定义:
CtrlX
2023/03/21
4550
C++核心准则T.43: 定义别名时,using比typedef更好
Improved readability: With using, the new name comes first rather than being embedded somewhere in a declaration. Generality: using can be used for template aliases, whereas typedefs can't easily be templates. Uniformity: using is syntactically similar to auto.
面向对象思考
2020/09/10
4820
C++typedef声明
C++除了可以声明结构体、共用体、枚举等类型外,还可以用typedef声明一个新的类型名来代替已有的类型名。
小林C语言
2021/01/07
1K0
C++typedef声明
c ++中的cout和std :: cout有什么区别?
cout和std::cout都相同,但是唯一的区别是,如果我们使用cout,则必须在程序中使用命名空间std,或者如果您不使用std命名空间,则应该使用std::cout。
自学气象人
2023/06/20
3K0
c ++中的cout和std :: cout有什么区别?
c语言之define和typedef的区别
宏定义只是简单的字符串代换,是在预处理完成的,而typedef是在编译时处理的,它不是作简单的代换,而是对类型说明符进行重新命令。被命名的标识符具有类型定义说明的功能。
西西嘛呦
2020/08/26
9490
c语言之define和typedef的区别
C语言链表和关键字typedef
例:构建一个有3个学生的链表,学生信息包括:学号,姓名,成绩。输出链表中每一个学生的全部信息。
岳泽以
2022/10/26
3310
【说站】c语言中typedef和define的区别
1、typedef仅限于为类型定义符号名称。define不仅可以为类型定义别名,还可以为数值定义别名。
很酷的站长
2022/11/24
4460
【说站】c语言中typedef和define的区别
蓝牙和WiFi有什么区别?
如果您拥有手机、笔记本电脑、计算机或任何其他现代电子设备,知道蓝牙和 WiFi 。
网络技术联盟站
2021/11/05
2.4K0
蓝牙和WiFi有什么区别?

相似问题

C ++和Visual C ++有什么区别?

2307

“STL”和“C ++标准库”有什么区别?

2892

securecrt和winscp有什么区别?

41.7K

JDK和JRE有什么区别?

2460

addEventListener和onclick有什么区别?

2503
相关问答用户
平安资管 | 架构师擅长4个领域
擅长3个领域
擅长4个领域
腾讯云TDP | 高级后端开发工程师擅长3个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档