Что такое эквивалент С++ для #region для С++, поэтому я могу поместить в сборный код разборчивые биты и сделать мой код немного легче читать?
Эквивалент #области для С++
Ответ 1
Ключевое слово Region > является специфичным 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() {}
Ответ 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.
-
Поместите ваши в разные области действия {...}, тогда он скроет код в разных областях: