我使用Atomineer 9.00来格式化我的代码注释,但是我在尝试确定返回类型是否为const
时遇到了困难。 documentation表示对于 MethodReturns ,使用%type%
将提供完整的返回类型(给出的示例为:const int*
):
MethodReturns
用于生成方法返回值(VB函数)的描述的规则。本节中可以使用以下特殊变量:
%type%方法的返回类型(const int *)
%typeBase%方法的返回类型,不包括任何修饰符(int)
但是,当我使用%type%
时,它会忽略const
。 MethodReturns.xml中的一个示例:
<Set desc="zzz A %type%" />
这将为该方法产生以下内容:
//! \brief Performs the action.
//! \return zzz an int.
int PerformAction();
//! \brief Performs the different action.
//! \return zzz an int.
const int PerformDifferentAction();
//! \brief Practise action.
//! \return zzz A std::string&
std::string& PractiseAction();
//! \brief Attempt action.
//! \return zzz A std::string&
const std::string& AttemptAction();
struct Success;
//! \brief Performs the action with tips action.
//! \return zzz A success*.
Success* PerformActionWithTips();
//! \brief Succeed at action.
//! \return zzz An int*.
const int* SucceedAtAction();
我已经尝试了所有其他变体:%typeBase
(来自MethodReturns.xml),甚至是%retTypeBase%
,%retType%
,%typeBase%
和%specialType%
(在记录Methods.xml中的方法时确定返回类型时会提到这些,但这些都不包括const
。
我还尝试了其他几种类型(double
,std::string
和自定义struct
),因此它不仅仅是int
。
从上面的示例中可以看出,我已经确认我设置的描述绝对是被调用的。
此外,这似乎与Parameters.xml完全正常(确定参数类型是否为const
);但是,它似乎不适用于Methods.xml(其中%retType%
可用于确定带修饰符的返回类型)
如何确定某个方法是否返回const
?
答案 0 :(得分:2)
这显然是Atomineer中的一个错误,并且在最新版本(9.21.3.1510)中仍然可以重现。在编写的规则和模板文档中,%type%
内的MethodReturns.xml
变量应始终解析为完整类型(包括const-modifier)。那里的例子
%type%方法
的返回类型(const int*)
甚至使用const修饰符,应该解析为(const int*)
- 但不是。问题仍然存在,默认MethodReturns.xml
没有任何修改(即使使用了%retType%
,根本没有包含在文档中 - 但它的行为仍然相同:没有const文档中显示的修饰符。
我建议通过其网站(support@atomineerutils.com)上的电子邮件联系Atomineer Pro文档的支持,并将此问题报告给他们。
答案 1 :(得分:2)
Apologies @Tas - 这确实是Atomineer的回归,我们在听到它的那天修复了它。我没有注意到你的帖子,或者我们会尽快解决问题。如果您将来遇到任何问题,请直接与我们联系(我们的电子邮件地址在Atomineer website),以便我们尽快为您提供帮助。
(修正案将在v9.22中,应尽快发布)