影者东升 发表于 2021-7-6 18:04:48

#pragma region

  #pragma region是Visual C++中特有的预处理指令。它可以让你折叠特定的代码块,从而使界面更加清洁,便于编辑其他代码。折叠后的代码块不会影响编译。你也可以随时展开代码块以进行编辑等操作。
  格式:
#pragma region name
/*
***********
*/
#pragma endregion comment
如上边所示,需要折叠的代码必须包含在#pragma region和#pragma endregion之间。#pragma region和#pragma endregion之后可以添加一些用来注释的文字。当你折叠代码块后,这些文字会显示在折叠的位置。  举个实际例子:
#pragma region 类型/函数

//boost type micro
#defineBOOST_TCP_SOCKETboost::asio::ip::tcp::socket
#defineBOOST_TCP_ACCEPTORboost::asio::ip::tcp::acceptor
#defineBOOST_TCP_ENDPOINTboost::asio::ip::tcp::endpoint
#defineBOOST_TCP_IPV4boost::asio::ip::tcp::address_v4
#defineBOOST_TCP_RESOLVERboost::asio::ip::tcp::resolver
#defineBOOST_IO_SERVICEboost::asio::io_service
#defineBOOST_ERROR_CODEboost::system::error_code
#defineBOOST_PLACE_HOLDERboost::asio::placeholders
#defineBOOST_SHARE_PTRboost::shared_ptr
#defineBOOST_FUNCTION_0boost::function0
#defineBOOST_FUNCTION_3boost::function3
#defineBOOST_THREADboost::thread

//boost function micro
#defineBOOST_ASIO_ASYN_READboost::asio::async_read
#defineBOOST_ASIO_ASYN_WRITEboost::asio::async_write
#defineBOOST_ASIO_ASYN_CONNECTboost::asio::async_connect
#defineBOOST_ASIO_BUFFERboost::asio::buffer
#defineBOOST_ASIO_TCP_IPV4_FROM_STRboost::asio::ip::address_v4::from_string
#defineBOOST_ASIO_TCP_V4boost::asio::ip::tcp::v4()
#define BOOST_BINDboost::bind

#pragma endregion 类型/函数

折叠代码块的方法:如同Visual C++中折叠函数、类、命名空间,当代码被包含在如上所述的指令之间后,#pragma region这一行的左边会出现一个“-”号,单击以折叠内容,同时“-”号会变成“+”号,再次单击可以展开代码块。
注意:此预编译指令在Visual Studio 2005及以上版本可以使用。但是在Visual Studio 2005中,当#pragma region之后包含类似“1st”这类的文字,会导致“error C2059: syntax error : 'bad suffix on number'”的编译错误。避免使用数字或者将数字与字母分离可以解决这个问题。



  
文档来源:51CTO技术博客https://blog.51cto.com/u_14832233/2993824
页: [1]
查看完整版本: #pragma region