小编Mik*_*age的帖子

迭代器相当于空指针?

在我正在实现的算法中,我需要操作struct T的std :: list .T持有对T的另一个实例的引用,但是这个引用也可以是"未分配的".起初,我想使用一个指针来保存这个引用,但是使用迭代器可以更容易地从列表中删除.

我的问题是:如何用迭代器表示等效于空指针?

我读通用解决方案是使用myList.end(),但在我的情况下,我需要测试迭代器是否为"null",并且我可以在存储迭代器的时刻之间添加或删除元素我从列表中删除它的那一刻......我应该让迭代器指向包含"null"元素的已知列表吗?还是有更优雅的解决方案?

c++ iterator stl list

13
推荐指数
1
解决办法
1万
查看次数

Ctest/CDash工作流程:部署夜间构建

我使用/维护了一些CMake项目,所以我开始检查CTest/CDash,但有些东西是我无法弄清楚的:

它只用于显示构建/测试结果吗?(又名美化原木)

或者:可以在服务器上部署夜间构建二进制文件吗?

尽管我认为CTest是测试CMake项目和显示测试结果的理想工具,但我还想在Web服务器上自动部署夜间构建,我想知道它是否是适合的工具.. .

c++ continuous-integration cmake ctest cdash

8
推荐指数
1
解决办法
1413
查看次数

使用脚本重构java代码

是否有基于eclipse的解决方案来使用脚本重构Java代码?

我已经阅读了Eclipse语言工具包,但它似乎意味着创建了一个插件,这对于一次性操作来说听起来有些过分.

是否存在某种脚本语言绑定,或者至少是一种从java调用重构代码但没有插件的方法?

示例使用案例:我有一个使用蓖麻油生成的类一个项目,我想迁移到JAXB 2.它意味着大量的重构现有的代码,这是不能被搜索和替换,也不是正则表达式来完成,因为上下文sensitveness.

java eclipse refactoring ltk

5
推荐指数
1
解决办法
2415
查看次数

无创多态性

一个简单的C++问题:是否可以根据指针的运行时类型调用函数或其他函数?

例如,我有一个A类,B类是A的孩子.

我想写一个函数f

f(A* a)
{//do something
}
f(B* b)
{//do something else
}

//call f()
A* a = new A();
A* b = new B();
f(a);//do something
f(b);//do something, but I'd like it to "do something else"
Run Code Online (Sandbox Code Playgroud)

额外的精度:A和B是从我的代码中定义和实例化的,所以我不能在A和B上使用常规的多态与虚函数...

我知道你可以使用一些RTTI,但有更优雅的解决方案吗?

c++ polymorphism

4
推荐指数
2
解决办法
185
查看次数