小编Foo*_*ble的帖子

为什么这段代码不能编译?在 lambda 内部重新分配特定类型的结构会导致错误 C2512:没有合适的默认构造函数可用

我有一个有 2 个成员的结构,它依赖第一个成员来计算第二个成员的值。

struct SomeStruct
{
   int memberA = 0;
   int memberB = memberA + 5;
};

int main()
{
   auto SomeLambda = []()
   {
      SomeStruct x;
      x = SomeStruct{};
   };

   SomeStruct x;
   x = SomeStruct{};
   return 0;
}

Run Code Online (Sandbox Code Playgroud)

我想重新分配该结构以重新初始化它并重用变量名称。我可以在常规函数中执行此操作,但是如果我在 lambda 中执行此操作,则会出现以下编译错误。

main.cpp(12): error C2512: 'SomeStruct': no appropriate default constructor available
main.cpp(12): note: Invalid aggregate initialization
Run Code Online (Sandbox Code Playgroud)

如果我消除成员之间的相互依赖性,代码可以正常编译。

struct SomeStruct
{
   int memberA = 0;
   int memberB = 5;
};
Run Code Online (Sandbox Code Playgroud)

如果我更改 lambda 内的赋值以使用括号而不是大括号,这也允许代码编译。

SomeStruct x;
x = SomeStruct();
Run Code Online (Sandbox Code Playgroud)

然而 lambda 之外的赋值仍然使用大括号。 …

c++ visual-c++ visual-studio-2019

5
推荐指数
0
解决办法
194
查看次数

在按钮摆动之间绘制可点击线

我有一个以特定图案布置的物体网格.单击对象将触发某些操作,例如显示有关该对象的信息或导航到另一个屏幕.

每个对象还具有与其他对象的连接.这些连接需要可点击,因为单击它们将显示有关该连接的更多信息.

以下示例显示了我的目标.网格中的每个蓝色圆圈都是可点击的对象,它们之间的每条红线都是可点击的连接.

例1

我已经尝试将对象和连接作为Jbuttons存储在单个网格包布局中,并且已经取得了一些成功,因为连接是可点击的.

但是,连接跨越单个方向的多个单元格,Jbuttons展开以填充布局单元格.这导致连接的末端穿过物体的中心并在网格袋单元的边界处完成.

这是我的意思:

例2

是否有一些更简单的方法来制作这种界面/以前有人这样做过吗?

java swing

1
推荐指数
1
解决办法
1040
查看次数

标签 统计

c++ ×1

java ×1

swing ×1

visual-c++ ×1

visual-studio-2019 ×1