繁体   English   中英

带有C ++异常的ANTLR3 C目标

[英]ANTLR3 C Target with C++ Exceptions

我对ANTLR 2的C ++目标有一定的经验,但是由于担心异常安全性,一直不愿意花很多时间在ANTLR 3上。

可悲的是,ANTLR 3只有一个C目标,该目标产生的C是“ C ++兼容的”。 基于以下情况,这似乎包括C ++异常安全性:

您可能可以谨慎地使用[exceptions],但是正如您所指出的那样,您必须谨慎使用内存。 运行时会跟踪其所有正常内存分配,因此只要您正确关闭“类”,通常就可以了。 但是,您应确保引发异常不会绕过正常的规则清除,例如重置错误和回溯标志等。

ANTLR感兴趣,大约在2009年

有没有人有使用(高级)C ++的ANTLR C目标的经验? 是否可以安全地引发异常? 我必须编写哪些额外的代码(如果有的话)以使其安全?

我没有任何ANTLR经验(可悲的是...),但是没有办法使C代码与异常一起工作。 我请您参考“更有效的C ++”项目9:“使用析构函数防止资源泄漏”

这样的想法是,如果在清理过程中引发了异常,则您将无法获得有关已删除和未删除内容的信息,并且您的软件泄漏内存。 如果使用auto_ptr / scroped_ptr,则不必担心,因为编译器会自行处理它。

但是这个习惯用法仅适用于C ++,在设计C时没有考虑到异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM