识别两个函数

Ident two functions

本文关键字:两个 函数 识别      更新时间:2023-10-16

我想创建一些在Visual Studio (c++)中使用的东西,也许是一个扩展,这将与两个已知的函数一起使用。让我试着解释一下。假设我有两个函数start()stop()。我通常使用以下函数:

start();
 do something...
stop();

有时候,知道什么开始,什么停止可能会让人感到困惑:

start();
 do something...
 start();
 do something...
 start();
 do something...
 stop();
 stop();
stop();

为了让我理解什么是开始的,什么是停止的,我需要手动识别所有行。我想创建如下内容:

start(){
 do something....
 start(){
 do something ...
 }
}

每当我关闭开始括号时,停止函数也将关闭,代码将更加有组织。

你们有什么想法如何实现这个或类似的东西吗?

在c++ 11中你可以编写这样的代码,但是你需要理解高阶函数和c++ lambda。

#include <iostream>
class Executor
{
public:
  void perform(void (*routine)())
  {
    start();
    routine();
    stop();
  }
  void start() { std::cout << "start" << std::endl; }
  void stop() { std::cout << "stop" << std::endl; }
};
int main()
{
  Executor executor;
  executor.perform([](){
      std::cout << "perform 0" << std::endl;
    });
  executor.perform([](){
      std::cout << "perform 1" << std::endl;
      Executor executor;
      executor.perform([](){
          std::cout << "perform 10" << std::endl;
        });
    });
}

您也可以这样做。

    start();
    {
        //do something...
        start();
        {
            //do something...
            start();
            {
                //do something...
            }
            stop();
        }
        stop();
    }
    stop();

它将帮助您定义start(); stop();语句// do something属于哪个。