gpt4 book ai didi

c++ - CLion 新的 C++ 类文件模板

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:22 24 4
gpt4 key购买 nike

CLion有生成C++类的文件模板,生成源文件和头文件。在我的项目中,我有具有相同代码部分的处理程序类,我想通过文件模板生成它们。我创建的模板不能这样做:

  1. 为类 MyHandlerClass 设置文件名我想要 my_handler_class.cpp 和 .hpp

  2. 我想从一个类名生成 2 个文件头和源,不知道该怎么做。

  3. 我也想要像 MyClass -> my-class 这样的字符串,找到函数 $lowercaseAndDash($NAME) 但不知道为什么它不起作用

我有标题模板:

#pragma once
// includes

namespace handlers {

class ${NAME}: public Parent {
public:
// methods
};

}

我试图通过像这样设置文件名来解决第一个问题:#set ($FILE_NAME = "test_class.hpp")。但我不知道将 CamelCase 设置为 snake 是否合适,这不起作用。

也可以在 docs 中找到蛇形的功能,但它在文件模板中对我不起作用。

最佳答案

  1. 无法从模板更改文件名。创建 C++ 类时,您可以设置类名选择文件名编码。当您从模板创建文件时,它会使用您的文件名保存文件。我通过这种方式找到了解决方案,输入 file_name(蛇形),然后使用 Velocity 为类名创建 CamelCaseName:

    #set( $CamelCaseName = "")

    #set( $part = "")

    #foreach($name.split("_") 中的$part)

    #set( $CamelCaseName = "${CamelCaseName}$part.substring(0,1).toUpperCase()$part.substring(1).toLowerCase()")

    #end

  2. 不可能像 C++ 类模板那样一次单击生成 2 个文件。我必须模板,并同时使用它们。

  3. 此函数用于 liveTemplates,对于 FileTemplate,我使用了速度:#set( $NeededString = $NAME.replaceAll('_', '-') )

    要包含来自 cpp 的头文件,请使用 #[[#include]]# "${NAME}.hpp"

关于c++ - CLion 新的 C++ 类文件模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56252534/

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