关于语法:C ++构造函数中的双花括号

Double curly braces in C++ constructor

下面的C++代码中的双括号是什么意思?

1
piranha::symbol_set ss({{piranha::symbol(detail::poly_print(var))}});

在上下文中,这是来自symengine代码("symengine/polys/uintpoly_piranha.h"中的一个文件,可以在下面的链接中找到,上面一行中使用的piranha库也是如此。

  • symengine源代码:https://github.com/symengine/symengine
  • Piranha源代码:https://github.com/bluescarni/piranha

我知道单大括号用作初始值设定项列表,但括号集中的双大括号对我来说意义不大。

我在双花括号中发现的主要内容是这个帖子,但在这里似乎不适用。

另外,我为链接这样的源代码而道歉,但是由于我缺乏理解,我不确定如何做一个较小的例子。

谢谢!


(P)Curly Braces can be used to describe(p)

  • An initializer list,which explains the outer braces(creating an EDOCX1 universal 0 of symbols,see the corresponding constructor)
  • a shorthand notation to a constructor call,which explains the innerBraces(Creating an instance of EDOCX1 universal 1 using the move constructor,see the corresponding constructor)如果你知道一个参数的类型之前,Instead of EDOCX1 plus 2,你可以只是拼写这也有助于恢复价值和可变的起点。

(P)So what actually happens in this line is:(p)

  • A EDOCX1 4 commercial is returned from EDOCX1
  • 这场比赛用来建造一个有趣的
  • 这个季节的价值是他们通过移动的建设者(我认为在这里)的EDOCX1的英文字母1,建筑另一个EDOCX1This seems a bit冗余,but I haven't tried if the code works with only one pair of braces
  • 这个以东X1是他们在一个以东
  • 这是他们通过了EDOCX1的建筑商。