gpt4 book ai didi

c++ - Qt Creator 包括保护模式

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:05:45 26 4
gpt4 key购买 nike

Qt-Creator 中有一种方法可以在创建新类时自动添加模板字符串吗?

例如:

我创建了新的 class Foo。自动生成的头文件是

#ifndef FOO_H
#define FOO_H

class Foo{
};

#endif FOO_H

我会:

#ifndef SOMETHING_FOO_H
#define SOMETHING_FOO_H

class Foo{
};

#endif SOMETHING_FOO_H

理想情况下,我想根据项目自定义它,例如 PROJECTNAME_FOO_H 甚至更好的PROJECT_NAMESPACE_FOO_H

最佳答案

我实现了生成 NAMESPACE_NESTEDDNAMESPACE_CLASSNAME_H 形式的 header 保护。我找不到任何东西来获取项目名称,但就我而言,这不是问题,因为我的顶级命名空间是我的项目名称。

根据@Alan Birtles 的回答,我修改了cpp 类向导。您需要将文件(file.cppfile.hwizard.json)从 QtCreator 安装目录复制到您的主目录( $HOME/.config/QtProject/qtcreator/templates/wizards 在 Linux 和 macOS 上或 %APPDATA%\QtProject\qtcreator\templates\wizards 在 Windows 上,根据 doc ).将它们放在相同的子文件夹中(即 wizards/classes/cpp)。

wizard.json 中,更改行:

{ "key": "GUARD", "value": "%{JS: Cpp.headerGuard('%{HdrFileName}')}" },

到:

{ "key": "GUARD", "value": "%{JS: Cpp.classToHeaderGuard('%{Class}', '%{JS: Util.suffix('%{HdrFileName}')}')}" },

请注意,您可以根据自己的喜好添加一些静态文本:

{ "key": "GUARD", "value": "RANDOM_TEXT_%{JS: Cpp.classToHeaderGuard('%{Class}', '%{JS: Util.suffix('%{HdrFileName}')}')}_INCLUDED" },

完整的文件可以在这里找到: https://gist.github.com/juleswh/aeacc89342bc51b19044cf1e04483357

希望这对您有所帮助!


我使用了以下资源,以防它可能有用:

关于c++ - Qt Creator 包括保护模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50609424/

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