Что означают двойные фигурные скобки в следующей строке кода C ++?
piranha::symbol_set ss({{piranha::symbol(detail::poly_print(var))}});
Для контекста, это из файла в коде SymEngine ("symengine/polys/uintpoly_piranha.h"
), который можно найти по ссылке ниже, а также библиотеку Piranha, которая используется в приведенной выше строке.
Я знаю, что одиночные фигурные скобки используются в качестве списков инициализаторов, но значение двойных фигурных скобок в скобках для меня мало что значит.
Главное, что я нашел на двойных фигурных скобках, было эта почта, но это не похоже здесь применимо.
Кроме того, я прошу прощения за ссылки на исходный код, как это, но я не уверен, как сделать меньший пример, учитывая мое непонимание.
Спасибо!
Фигурные скобки могут быть использованы для описания
std::initializer_list
символов см. соответствующий конструктор) symbol
используя конструктор перемещения, смотрите соответствующий конструктор)symbol{parameters}
ты можешь просто написать {parameters}
, Это также работает для возвращаемых значений и инициализации переменных.Так что на самом деле происходит в этой строке:
std::string
возвращается из detail::poly_print(var)
piranha::symbol
symbol
, построив другую symbol
piranha::symbol
затем сохраняется в std::initializer_list
piranha::symbol_set
Других решений пока нет …