Имеется ли в 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
201 +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
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир