以下C ++代码行中的双花括号是什么意思?
piranha::symbol_set ss({{piranha::symbol(detail::poly_print(var))}});
对于上下文,这是来自SymEngine代码("symengine/polys/uintpoly_piranha.h"
)中的文件,可以在下面的链接中找到,上面一行中使用的Piranha库也可以找到。
我知道单花括号用作初始化列表,但括号内的双花括号的含义对我来说没什么意义。
我在双花括号上找到的主要内容是this post,但它似乎不适用于此。
另外,我为链接这样的源代码道歉,但由于我缺乏理解,我不确定如何制作一个较小的例子。
谢谢!
答案 0 :(得分:3)
可以使用大括号来描述
std::initializer_list
个符号,请参阅the corresponding constructor)symbol
的实例,请参阅the corresponding constructor)symbol{parameters}
而不是{parameters}
。这也适用于返回值和变量初始化。所以这一行实际发生的是:
std::string
detail::poly_print(var)
piranha::symbol
symbol
的移动构造函数(我在这里猜测),构建另一个symbol
piranha::symbol
存储在std::initializer_list
piranha::symbol_set