为什么允许从对<int64_t,int64_t>隐式转换为对<int,int>?

莱贝克

我注意到有些情况下std :: pair会隐式转换为其他类型的std :: pair,而不会发出警告,但是我不知道为什么。我已经看过std :: pair的构造函数了,无法弄清楚。有人可以向我解释吗?

例子:

 std::pair<int,int> a = std::pair<int64_t, int64_t>(1,2);

使用clang -Wall -Wythingthing不给出任何警告。

Wojtek Surowka

构造函数

template<class U, class V> pair(const pair<U, V>& p);

允许从任何对复制,前提是的第一个元素p可以转换为正在构造的对的第一个元素,对于第二个元素则相同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从int64_t转换为double到int64_t再次更改其值

来自分类Dev

从int64_t转换为double到int64_t再次更改其值

来自分类Dev

如何创建行为几乎与int64_t完全一样的类型安全句柄,但不允许在句柄类型之间进行隐式转换?

来自分类Dev

int64_t背后的魔力是什么

来自分类Dev

了解从double到int64_t的转换

来自分类Dev

C ++中int64和int64_t有什么区别?

来自分类Dev

AFURLConnectionOperation.m隐式转换失去整数精度:从'int64_t'(aka'long long')到'NSInteger'(aka'int')

来自分类Dev

在保留顺序的同时将float转换为int64_t

来自分类Dev

为什么当int64_t更改为int32_t时类的大小会增加

来自分类Dev

为什么将Char隐式转换为Int?

来自分类Dev

替换为“ typedef int64_t x_t __attribute __((vector_size(16)));

来自分类Dev

如何保持int64_t = int64_t * float的精度?

来自分类Dev

int64_t再次翻倍至int64_t,精度下降

来自分类Dev

将int64_t指针强制转换为AVX2内在_m256i

来自分类Dev

比较int64_t和uint64_t

来自分类Dev

为什么在调用构造函数时将int隐式转换为float而不是double?

来自分类Dev

我如何将int等同于int64_t而又没有得到转换丢失整数精度警告的信息?

来自分类Dev

隐式将int转换为double

来自分类Dev

C ++:int64_t它来自哪里?

来自分类Dev

乘以int64_t数组的最快方法?

来自分类Dev

如何与numeric_limits <int64_t> :: min()比较

来自分类Dev

乘以int64_t数组的最快方法?

来自分类Dev

为什么在32位x86架构上,“ int64_t” 8字节的默认对齐方式?

来自分类Dev

为什么使用 int64_t 会给出错误的结果,而对于简单的整数乘法,double 却按预期工作

来自分类Dev

为什么无法从int到Long隐式转换?

来自分类Dev

ARC不允许将非目标C指针类型'int *'隐式转换为'Bird *'

来自分类Dev

重载模棱两可(int-> int64_t vs int-> double)

来自分类Dev

无法将类型int []隐式转换为int?[]

来自分类Dev

无法将类型int []隐式转换为int?[]

Related 相关文章

  1. 1

    从int64_t转换为double到int64_t再次更改其值

  2. 2

    从int64_t转换为double到int64_t再次更改其值

  3. 3

    如何创建行为几乎与int64_t完全一样的类型安全句柄,但不允许在句柄类型之间进行隐式转换?

  4. 4

    int64_t背后的魔力是什么

  5. 5

    了解从double到int64_t的转换

  6. 6

    C ++中int64和int64_t有什么区别?

  7. 7

    AFURLConnectionOperation.m隐式转换失去整数精度:从'int64_t'(aka'long long')到'NSInteger'(aka'int')

  8. 8

    在保留顺序的同时将float转换为int64_t

  9. 9

    为什么当int64_t更改为int32_t时类的大小会增加

  10. 10

    为什么将Char隐式转换为Int?

  11. 11

    替换为“ typedef int64_t x_t __attribute __((vector_size(16)));

  12. 12

    如何保持int64_t = int64_t * float的精度?

  13. 13

    int64_t再次翻倍至int64_t,精度下降

  14. 14

    将int64_t指针强制转换为AVX2内在_m256i

  15. 15

    比较int64_t和uint64_t

  16. 16

    为什么在调用构造函数时将int隐式转换为float而不是double?

  17. 17

    我如何将int等同于int64_t而又没有得到转换丢失整数精度警告的信息?

  18. 18

    隐式将int转换为double

  19. 19

    C ++:int64_t它来自哪里?

  20. 20

    乘以int64_t数组的最快方法?

  21. 21

    如何与numeric_limits <int64_t> :: min()比较

  22. 22

    乘以int64_t数组的最快方法?

  23. 23

    为什么在32位x86架构上,“ int64_t” 8字节的默认对齐方式?

  24. 24

    为什么使用 int64_t 会给出错误的结果,而对于简单的整数乘法,double 却按预期工作

  25. 25

    为什么无法从int到Long隐式转换?

  26. 26

    ARC不允许将非目标C指针类型'int *'隐式转换为'Bird *'

  27. 27

    重载模棱两可(int-> int64_t vs int-> double)

  28. 28

    无法将类型int []隐式转换为int?[]

  29. 29

    无法将类型int []隐式转换为int?[]

热门标签

归档