- 主题:C++如何在程序结束的时候不调用析构函数
都想到了sleep,为什么不进一步考虑ipc呢?这样就要有逻辑的多。
--
FROM 124.127.145.*
不对啊,测试框架一般都有只初始化一次的静态Setup啊,你这应该从测试本身改,不应该改Good。
【 在 bihai 的大作中提到: 】
: 这个测试最开始的问题是Rust本身测试时多线程导致的。如果在Rust里面GetGood
:
: Setup{
: a = GetGood(...);
: Ok(a);
: }
:
: Test_1{
: let _tmp = Setup();
: ...
:
: ..................
发自「今日水木 on 钛星」
--
FROM 114.255.33.*
这个方案是对的,内存泄漏不是一定要避免的东西,需要根据具体场景具体分析
你这场景利用一下内存泄漏未尝不可
【 在 bihai 的大作中提到: 】
: 对,用指针就可以避免析构。sleep不会造成内存泄漏,但是审查代码的不让我sleep。他们居然建议有内存泄漏的办法。
:
--
FROM 114.246.171.*
写任何代码,写完后都要问自己,如果这段代码给三十年后的自己来看,能不能马上明白里面的逻辑。
不要干任何tricky的事情,除非以后不想维护它了。
【 在 bihai 的大作中提到: 】
: 这是一个挺有趣的问题。是这样的,在一个系统里,有一个函数,已经写好了
: HigherLevel<Good> GetGood(std::string path);
: 这个函数根据一个文件的路径来做一个事情,比如,把这个文件读入,然后创建一个文件,把原来文件的内容翻转写入。然后,返回一个Good变量。这里,HigherLevel是另一个模板类,用来包装一下函数返回的正确或者错误等信息。所以关键是Good。Good这个类保存了一些这个新创建的文件的信息,它的析构函数把这个新创建的文件删除。
: ...................
--
FROM 183.128.140.*
我问过了,Rust没有这个机制。
【 在 ble 的大作中提到: 】
: 不对啊,测试框架一般都有只初始化一次的静态Setup啊,你这应该从测试本身改,不应该改Good。
: 发自「今日水木 on 钛星」
--
FROM 98.42.143.*
放狗搜了一下,确实有这个需求但是没有实现,一般都推荐用lazy_static或者sync::Once自己写一个。
【 在 bihai 的大作中提到: 】
: 我问过了,Rust没有这个机制。
: --
发自「今日水木 on 钛星」
--
FROM 114.255.33.*
有什么关系,只执行一次,泄露不会累积
【 在 bihai 的大作中提到: 】
: 对,用指针就可以避免析构。sleep不会造成内存泄漏,但是审查代码的不让我sleep。他们居然建议有内存泄漏的办法。
:
--
FROM 121.69.27.*
和月薪3000的最喜欢讨论北约东扩会招致俄罗斯的如何应对继而影响美国对华政策一样,
Low-tech boy 团队最喜欢讨论这种高端技术。:-)
你这种明显是测试用例组织和环境设置的问题,非要用技术来实现。
【 在 bihai 的大作中提到: 】
: 这是一个挺有趣的问题。是这样的,在一个系统里,有一个函数,已经写好了
: HigherLevel<Good> GetGood(std::string path);
: 这个函数根据一个文件的路径来做一个事情,比如,把这个文件读入,然后创建一个文件,把原来文件的内容翻转写入。然后,返回一个Good变量。这里,HigherLevel是另一个模板类,用来包装一下函数返回的正确或者错误等信息。所以关键是Good。Good这个类保存了一些这个新创建的文件的信息,它的析构函数把这个新创建的文件删除。
: ...................
--
FROM 117.39.198.*
建议你去改测试的写法,这样比较简单
前面有人说,天下本无事嘛
【 在 bihai 的大作中提到: 】
: 这是一个挺有趣的问题。是这样的,在一个系统里,有一个函数,已经写好了
: HigherLevel<Good> GetGood(std::string path);
: 这个函数根据一个文件的路径来做一个事情,比如,把这个文件读入,然后创建一个文件,把原来文件的内容翻转写入。然后,返回一个Good变量。这里,HigherLevel是另一个模板类,用来包装一下函数返回的正确或者错误等信息。所以关键是Good。Good这个类保存了一些这个新创建的文件的信息,它的析构函数把这个新创建的文件删除。
: ...................
--
FROM 123.112.21.*
可以用in-palcement new,这样就不会有内存泄漏
--
FROM 1.91.33.*