水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:关于std::variant 初始化的问题
楼主
|
mvtec
|
2023-01-12 00:43:13
|
展开
不同的number type
std::variant<int, float> v4{42.3};// ERROR: ambiguous
std::variant<int, double> v5{42.3};// OK
std::variant<int, long double> v6{42.3}; // ERROR: ambiguous
第二个用double可以为什么第三个用long double就不行
--
FROM 67.186.83.*
2楼
|
mvtec
|
2023-01-12 03:58:16
|
展开
msvc的long double和double是一个类型
gcc和clang的long double 是16 bytes
我没明白为啥long double不能match 42.3
【 在 z16166 的大作中提到: 】
: 隐式转换规则导致的吧
: 第一个加个f就不会了
: std::variant<int, float> v4{42.3f};
: ...................
--
FROM 50.231.249.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版