Эквивалент #области для С++

Что такое эквивалент С++ для #region для С++, поэтому я могу поместить в сборный код разборчивые биты и сделать мой код немного легче читать?

Ответ 2

В дополнение к #pragma region... #pragma endregion для Visual Studio многие IDE поддерживают следующий синтаксис для регионов на любом {} -delimited, // -комментированном языке:

//{ Region header text.
…
//}

Известные примеры включают Code:: Blocks и FlashDevelop и любой другой редактор, который использует компонент редактирования Scintilla, например Notepad ++, Geany, Комодо Редактировать и многие другие.

Ответ 3

В С++ нет эквивалента. Однако IDE должны иметь возможность свернуть разделы.

Также можно использовать что-то вроде этого:

#pragma region

#pragma endregion A comment about the region.

Но, вероятно, не очень портативный

Ответ 4

Нет эквивалента. Функция #region является частью спецификации С#.

С++ не имеет такого эквивалента. Вы могли бы имитировать его со специально отформатированными комментариями, но это было бы специфичным для редактора.

Для Visual Studio вы можете использовать:

#pragma region name
...
#pragma endregion name

Ответ 5

Я использовал

#ifndef ANY_NAME_FOR_THIS_REGION
    ...
#endif

для нескольких проектов в течение последних нескольких лет, и это мне подходит (в том числе разборные блоки). как дополнение, я могу отключить блок, используя #define ANY_NAME_FOR_THIS_REGION чуть выше него.

Ответ 6

Нет эквивалента.

Большинство хороших редакторов или IDE позволят вам свернуть функции, если не также if/else/while/for/etc.

Ответ 7

Просто дополнение к другим ответам. Определение региона варьируется от IDE к IDE.

Для разработки Mac в Xcode вы можете использовать прагму:

#pragma mark

Ответ 8

С++ Builder поддерживает это, но вы должны объявить область как:

#pragma region BLAH

.....

#pragma end_region

Вы должны использовать end_region для С++ Builder, но он будет работать, и он разрушит регион!

Ответ 9

Kate, KDevelop и все другие текстовые редакторы и IDE, которые используют Katepart, поддерживают области маркировки с маркерами //BEGIN и //END.

// BEGIN GPT entity types
#define GPT_ENT_TYPE_UNUSED \
    {0x00000000,0x0000,0x0000,0x00,0x00,{0x00,0x00,0x00,0x00,0x00,0x00}}
#define GPT_ENT_TYPE_EFI \
    {0xc12a7328,0xf81f,0x11d2,0xba,0x4b,{0x00,0xa0,0xc9,0x3e,0xc9,0x3b}}
#define GPT_ENT_TYPE_MBR \
    {0x024dee41,0x33e7,0x11d3,0x9d,0x69,{0x00,0x08,0xc7,0x81,0xf3,0x9f}}
// END

Вы сможете свернуть регион, определенный таким образом.

Ответ 10

В первом ответе этот вопрос упоминается другая альтернатива. Однако это не применимо во всех ситуациях.

Метод: Используйте вместо этого {...}, который изначально поддерживает сбой кода в Visual Studio.

  • Включить опцию: Инструменты → Параметры → Текстовый редактор → C/С++ → Форматирование → Блоки Statement OutLine → True.

  • Поместите ваши в разные области действия {...}, тогда он скроет код в разных областях:

Scoped code collapsing example