gpt4 book ai didi

c++ - 这是糟糕的 C++ 风格还是编辑器错误?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:42:47 24 4
gpt4 key购买 nike

我在我正在试用的新 C++ 编辑器 (CLion) 中有这段代码:

 struct screenPoint {
float x = 0, y = 0;
screenPoint(float x_, float y_): x{x_}, y{y_}{}
};

struct position {
screenPoint ul;
float width = 0, height = 0;
position(screenPoint p, float w, float h): ul{p},width{w},height{h}{}
};

接近尾声的是初始化语句 ul{p},我认为这是使用大括号初始化的有效 C++ 方法。然而,CLion 提示道:

初始化器中的不兼容类型:“float”和“screenPoint”类型不兼容。

注意:没有编译器错误或警告,代码按预期工作。

如果我将其更改为 ul(p),错误就会消失。

现在,我知道 screenPoint 没有接受另一个 screenPoint 的构造函数,但是在这样的初始化中有必要吗?

最佳答案

这是一个编辑错误。具有相同类型元素的列表初始化应该调用隐式复制构造函数。

尝试复制聚合时存在核心语言缺陷 (1467),但这不是聚合。

关于c++ - 这是糟糕的 C++ 风格还是编辑器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39317585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com