Имеется ли в C++ данный синтаксис? Следующий отрезок кода взят из документации к VPP (Vector Packet Processing):VNET_FEATURE_ARC_INIT (ip4_unicast, static) = { .arc_name = "ip4-unicast", .start_nodes = VNET_FEATURES ("ip4-input", "ip4-input-no-checksum"), .arc_index_ptr = &ip4_main.lookup_main.ucast_feature_arc_index, }; Мне эта конструкция абсолютно непонятна, и нигде в документации я не нашёл объяснения. Надо понять, является ли это синтаксисом современного C++ или это уже какой-то макрос или препроцессор.

21 Апр 2023 в 19:53
186 +1
0
Ответы
1

ет, данный синтаксис не является частью стандарта C++. Это представляет собой расширение языка, которое используется в фреймворке VPP.


Описание кода, который вы привели, можно разобрать следующим образом:


- `VNET_FEATURE_ARC_INIT` - это макрос, определенный в библиотеке VPP, который инициализирует обработку пакетов при прохождении через определенные узлы.

- `ip4_unicast` - это имя функции обработки, которую инициализирует макрос.

- `static` - это указатель на функцию, объявленный как статический.

- `{}` - это начало и конец инициализации.

- `.arc_name = "ip4-unicast"` - это инициализация поля `arc_name` значением `"ip4-unicast"`.

- `.start_nodes = VNET_FEATURES ("ip4-input", "ip4-input-no-checksum")` - это инициализация поля `start_nodes` значением `VNET_FEATURES ("ip4-input", "ip4-input-no-checksum")`, которое представляет собой список имен функций обработки, которые будут вызваны при прохождении пакета через узлы.

- `.arc_index_ptr = &ip4_main.lookup_main.ucast_feature_arc_index` - это инициализация указателя `arc_index_ptr` значением `&ip4_main.lookup_main.ucast_feature_arc_index`.


Данный код использует круглые скобки, фигурные скобки и точки с запятой в конструкциях, что вполне соответствует стандарту C++. Однако, такой синтаксис, как использование фигруных скобок для инициализации полей, является особенностью VPP и не поддерживается стандартом C++.

22 Апр 2023 в 13:51
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 888 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир