LE3 发表于 2010-3-17 11:43:18

ResbufList类

更新
**** Hidden Message *****

LE3 发表于 2010-3-17 15:12:13

嗨Dan,
第一只鸟的眼睛看起来不错。
一旦我有机会从我的一个项目中再次实现一些autolisp函数,就会进行一次全面的尝试——你应该像七年前一样编写这个类。
这是你的吗?(我问是因为没有看到你的名字)。
谢谢!

pkohut 发表于 2010-3-17 19:06:26


谢谢!它不仅适用于lisp,在使用扩展数据、扩展记录、选择集过滤器时也很有用...或者您需要使用resbuf的地方..
当然不是我的,是你的,这就是我写它的原因(注意标题上的“DRM”)
...除了“分离”方法是从ARX样本中提取的..

pkohut 发表于 2010-3-17 19:25:35

哎呀,我没注意到那些是你名字的首字母...
我正在考虑一个项目,该项目需要将几个函数导出到autolisp。
谢谢!它不仅适用于lisp,在使用扩展数据、扩展记录、选择集过滤器时也很有用...或者您需要使用resbuf的地方..
当然不是我的,是你的,这就是我写它的原因(注意标题上的“DRM”)
...除了“分离”方法是从ARX样本中提取的..

pkohut 发表于 2010-3-17 19:32:47


您是否可以提供一些测试代码,以显示预期的用途?
Gut说没有。
起初我并不太喜欢,因为它似乎有点过烤和沉重,用于处理resbufs,但仔细观察它是有潜力的。所以这些评论纯粹是在看了大约15分钟后发表的。
1)吃你给你的狗的狗粮。您为类的用户提供一个开始()和结束()的迭代器。在循环中也使用这些,例如函数CResbufList::at、clone等。您将确保它们按预期工作,并为用户提供有关如何使用它们的代码现成示例。
2)也许添加一个大小函数到类中?对不起,刚刚看到了长度函数,不是一个很好的函数名称,以符合std。
3)CResbufList::at和RemoveAt,一种无用的函数,size_t输入参数,因为没有一个查找函数知道要删除什么索引。
4)CResbufList::at和RemoveAt,如果他们在输入参数处使用指针或迭代器,则更有用。(编辑:添加迭代器)
5)也许添加一个插入函数。
6)通过cloneNode的推断,您的复制构造函数和赋值操作符不是异常安全的。确保检查所有API返回代码和指针,您有一些未首先检查的取消引用指针。
否则看起来不错Daniel。

owenwengerd 发表于 2010-3-17 20:10:07

抱歉,刚刚在线程顶部看到了您的示例用法。
函数释放使mpTail悬而未决。
大多数返回resbuf指针的函数都应该返回迭代器。我认为这将解决该类的一个挥之不去的问题,那就是该类没有足够地封装resbuf指针列表。通过返回迭代器而不是原始指针,您正在强制执行这是一个容器类的概念,并且要在resbuf列表上完成的工作应该完全通过该类完成(尽可能多地)。为了进一步增强容器类的实用性,CResbuf类型类将是一个有用的添加,可能比容器类本身更有用。

gswang 发表于 2010-3-17 21:24:09


很好的反馈!谢谢大家!!!!!
进行更改...

pkohut 发表于 2010-3-17 21:48:53

第6项,如何使 cctor 和赋值运算符“异常安全”?,这是一个可为 null 的类型。
不应有任何取消引用的指针

pkohut 发表于 2010-3-17 22:14:36

您应该检查返回新缓冲区、acutNewRb acutNewString等的函数的返回值。指针规则永远不会取消引用NULL指针。看看cloneNode。

pkohut 发表于 2010-3-17 22:17:16


我现在看到它
页: [1] 2
查看完整版本: ResbufList类