Эквивалент #region для C++


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

10 60

10 ответов:

на Ключевое слово региона является специфичным для IDE и влияет на рендеринг в Visual Studio. Ближайший эквивалент #pragma Region который применим только к Visual Studio .

пример кода MSDN

// pragma_directives_region.cpp
#pragma region Region_1
void Test() {}
void Test2() {}
void Test3() {}
#pragma endregion Region_1

int main() {}

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

//{ Region header text.
…
//}

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

в C++нет эквивалента. Однако IDE должны иметь возможность сворачивать секции.

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

#pragma region

#pragma endregion A comment about the region.

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

нет эквивалента. Элемент #region feature является частью спецификации C#.

C++ не имеет такого эквивалента. Вы можете имитировать его с помощью специально отформатированных комментариев, но это будет специфичный редактор.

для Visual Studio можно использовать:

#pragma region name
...
#pragma endregion name

Я использую

#ifndef ANY_NAME_FOR_THIS_REGION
    ...
#endif

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

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

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

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

для разработки Mac в Xcode можно использовать псевдокомментарий:

#pragma mark

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

#pragma region BLAH

.....

#pragma end_region

вы должны используйте end_region для C++Builder, но это будет работать, и это будет крах регионе!

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

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

первый ответ от этот вопрос упоминает еще один вариант. Однако он применим не во всех ситуациях.

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

  1. включить опцию: Инструменты - > Параметры - > текстовый редактор - > C/C++ - > форматирование - > блоки инструкций контура - > True.

  2. положить в разных областях {...}, то он свернет код в разных областях:

Scoped code collapsing example