Atomineer:确定返回类型是否为const

时间:2015-05-26 02:14:30

标签: c++ atomineer

我使用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&amp;
std::string& PractiseAction();

//! \brief  Attempt action.
//! \return zzz A std::string&amp;
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

我还尝试了其他几种类型(doublestd::string和自定义struct),因此它不仅仅是int

从上面的示例中可以看出,我已经确认我设置的描述绝对是被调用的。

此外,这似乎与Parameters.xml完全正常(确定参数类型是否为const);但是,它似乎不适用于Methods.xml(其中%retType%可用于确定带修饰符的返回类型)

如何确定某个方法是否返回const

2 个答案:

答案 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中,应尽快发布)