gpt4 book ai didi

c++ - Visual Studio : hotkey/way to automatically sort functions in . h 与.cpp保持一致

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:39 28 4
gpt4 key购买 nike

我想让头文件 .h 中的函数顺序与源文件 .cpp 中的函数顺序一致。

例子

B.h

class B{
void f2(); //<--- wrong order
void f1();
};

B.cpp

#include "B.h"
void B::f1(){}
void B::f2(){}

预期结果 (B.h)

class B{
void f1(); //<---- nice
void f2();
};

问题

主要问题:在 Visual Studio 中是否有任何(半)自动方法来执行 (.cpp -> .h)?
热键?脚本?插入? Visual AssistX/Resharper?

a similar question但它问相反的方式(它没有解决方案)。
第二个问题:如何自动做相反的方式(半)? (.h -> .cpp)

这是一项基本功能。应该存在吧?
否则,专家将如何处理这种疾病?他们手动移动它吗?

编辑:
三个答案都说没有这种自动方式,但我还是希望有。

最佳答案

正如其他答案所指出的,似乎没有任何自动方式来做您想做的事情。

但是,您可以通过遵循编码标准来简化此过程。

首先,你问:

Primary Question: Is there any (semi) automatic way to do (.cpp -> .h) in Visual Studio? Hotkey? Plugin?

我认为这不是正确的方法。您不希望 .cpp 文件的布局驱动 .h 文件的布局。 .h 文件是接口(interface)。设计 .h 文件的布局,使其对您和您的用户有意义。然后确保 .cpp 文件的布局方式相对于 .h 文件有意义。

这是一种对我有意义的 .h 文件布局。

//---------------------------------------------------------------------
/*!
\file MyClass.h

Copyright Notice

...

\author Your Name
\date 2017-Mar-01
*/
//---------------------------------------------------------------------

#pragma once
#ifndef MyClass_H
#define MyClass_H

// ********** BEGIN STANDARD INCLUDES **********
// ********** END STANDARD INCLUDES **********

// ********** BEGIN EXTERN DECLARATIONS **********
// ********** END EXTERN DECLARATIONS **********

// ********** BEGIN FORWARD DECLARATIONS **********
// ********** END FORWARD DECLARATIONS **********

// ********** BEGIN TYPEDEF DEFINITIONS **********
// ********** END TYPEDEF DEFINITIONS **********

// ********** BEGIN MACRO DEFINITIONS **********
// ********** END MACRO DEFINITIONS **********

// ********** BEGIN ENUM DEFINITIONS **********
// ********** END ENUM DEFINITIONS **********

/*!
\class MyClass
This class does this and that.
*/
class MyClass
{
public:

protected:

private:
};


// ********** BEGIN INLINE FUNCTIONS **********
// ********** END INLINE FUNCTIONS **********

// ********** BEGIN EXTERN FUNCTIONS **********
// ********** END EXTERN FUNCTIONS **********

#endif

以及相应 .cpp 文件的布局:

//---------------------------------------------------------------------
/*!
\file MyClass.cpp

Copyright Notice

...

\author Your Name
\date 2017-Mar-01
*/
//---------------------------------------------------------------------

#include "MyClass.h"

// ********** BEGIN STANDARD INCLUDES **********
// ********** END STANDARD INCLUDES **********

// ********** BEGIN EXTERN DECLARATIONS **********
// ********** END EXTERN DECLARATIONS **********

// ********** BEGIN STATIC DECLARATIONS **********
// ********** END STATIC DECLARATIONS **********

// ********** BEGIN EXTERN DEFINITIONS **********
// ********** END EXTERN DEFINITIONS **********

// ********** BEGIN HELPER CLASSES **********

// Namespace for helper classes and functions used in the file.

namespace MyClassNS
{
}

using namespace MyClassNS;

// ********** END HELPER CLASSES **********

// ********** BEGIN PUBLIC FUNCTIONS **********
// ********** END PUBLIC FUNCTIONS **********

// ********** BEGIN PROTECTED FUNCTIONS **********
// ********** END PROTECTED FUNCTIONS **********

// ********** BEGIN PRIVATE FUNCTIONS **********
// ********** END PRIVATE FUNCTIONS **********

使用这样的布局,将更容易确保函数声明在 .h 文件中出现的顺序在 .cpp 文件中得到遵循。

PS 您不需要在代码中使用 Doxygen 样式标记,除非您使用它来自动生成文档。

关于c++ - Visual Studio : hotkey/way to automatically sort functions in . h 与.cpp保持一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41582286/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com