C++17 · type conversion bench

初始化与窄化
判定实验室

同一个值,换一种初始化写法,可能从“允许但丢失信息”变成“直接拒绝”。组合类型、源值与语法,观察规则如何作出判定。

输入台

组装一条声明

bool 可输入 true 或 false;空花括号会忽略此值。
初始化形式
预设案例
规则台

即时判定

×

能否通过
结果值
信息变化

为什么?

关键区别:花括号列表初始化会在编译阶段拦截规则定义的窄化转换;等号与圆括号通常允许标准转换,但结果可能改变。

快速挑战

先判断,再看解释

判断路线

先看是否用了花括号;再识别源类型与目标类型;最后检查该转换是否属于窄化。不要只凭“值看起来不大”猜答案。