我使用Hudson作为持续集成服务器来测试C/C++代码.不幸的是,我有一个导致内存损坏的错误,所以在某些Windows机器上,我有时会得到一个"应用程序错误"对话框,说明一条指令引用了无法读取的内存.弹出此对话框并基本挂起测试运行,因为它需要手动干预.
有没有办法阻止此对话框出现,以便测试运行只是失败并在Hudson中报告?
是否可以自动生成小型转储而不是显示对话框?
我读到了"现代C++设计"中的类型列表,我将其理解为某种类型的联合.通过在类型列表中放置不同的,不相关的类型,可以使用它一次表示多个类型,而无需继承.我在原始类型的一些简单函数中测试了类型列表,但我无法使它们中的任何一个工作.
有人可以告诉我,如果我对类型列表的解读是正确的,并给出一个简单的现实世界的例子,如何在每天的平均代码中使用类型列表?提前致谢.
顺便说一下,我正在使用Windows和Visual Studio 2005及其编译器.
编辑:我的例子不见了,我在vs中使用沙箱项目来测试这些东西.但它很安静,类似于Dobbs教程中的代码:
void SomeOperation(DocumentItem* p)
{
if (TextArea* pTextArea = dynamic_cast<TextArea*>(p))
{
... operate on a TextArea object ...
}
else if (VectorGraphics* pVectorGraphics =
dynamic_cast<VectorGraphics*>(p))
{
... operate on a VectorGraphics object ...
}
else if (Bitmap* pBitmap = dynamic_cast<Bitmap*>(p))
{
... operate on a Bitmap object ...
}
else
{
throw "Unknown type passed";
}
}
Run Code Online (Sandbox Code Playgroud)
这有效,但我没有看到继承能够做到这一点的优势.动态转换不适用于基本类型.是否可以将其用作返回值,如:
typedef Typelist<int, string> mylist
mylist myfunction() {
if(foo == bar)
return 5;
return "five";
}
Run Code Online (Sandbox Code Playgroud) 我有以下情况:
class A
{
public:
A(int whichFoo);
int foo1();
int foo2();
int foo3();
int callFoo(); // cals one of the foo's depending on the value of whichFoo
};
Run Code Online (Sandbox Code Playgroud)
在我当前的实现中,我保存whichFoo构造函数中的数据成员的值,并使用switchin callFoo()来决定要调用哪个foo.或者,我可以switch在构造函数中使用a 来保存指向fooN()要调用的权限的指针callFoo().
我的问题是,如果A类的一个对象只构造一次,那么哪种方式更有效,而callFoo()被称为非常多次.所以在第一种情况下我们有多个switch语句的执行,而在第二种情况下只有一个开关,并且使用指向它的指针多次调用成员函数.我知道使用指针调用成员函数比直接调用它要慢.有人知道这个开销是多少还是少于一个switch?
澄清:我意识到你从来没有真正知道哪种方法可以提供更好的性能,直到你尝试并计时.但是,在这种情况下,我已经实施了方法1,并且我想知道方法2是否可以至少在原则上更有效.它似乎可以,现在我有理由去实现它并尝试它.
哦,我也喜欢方法2更好的审美原因.我想我正在寻找实现它的理由.:)
这个异常通过简单的'getParameter()'调用来加密我们的生产catalina日志.
WARNING: Parameters: Character decoding failed. Parameter skipped.
java.io.CharConversionException: EOF
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:82)
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:48)
at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:411)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:393)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:509)
at org.apache.tomcat.util.http.Parameters.handleQueryParameters(Parameters.java:266)
at org.apache.catalina.connector.Request.parseParameters(Request.java:2361)
at org.apache.catalina.connector.Request.getParameter(Request.java:1005)
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:353)
at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:158)
或者有时:
java.io.CharConversionException: isHexDigit
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:87)
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:48)
at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:411)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:393)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:509)
at org.apache.tomcat.util.http.Parameters.handleQueryParameters(Parameters.java:266)
at org.apache.catalina.connector.Request.parseParameters(Request.java:2361)
at org.apache.catalina.connector.Request.getParameter(Request.java:1005)
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:353)
at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:158)
许多期刊要求提交盲文版本的论文.盲目版本通常会删除:
如何在不手动操作的情况下创建手稿的盲版?
我正在尝试使用Cygwin在Windows上设置自动构建系统.除此之外,它还需要能够构建多个Visual C++解决方案.我有一个脚本来设置devenv所需的环境变量,如果我在bash中输入'devenv'它会调出Visual Studio IDE.到目前为止没问题.
我也可以通过输入从cygwin的bash提示符中构建一个解决方案
$ devenv mysolution.sln /build Debug
问题是它没有向我显示构建输出.实际上,它甚至没有告诉我构建是否成功.命令完成后,我收到提示.然后我可以进入输出目录,检查是否创建了可执行文件,但是对于构建系统,我希望能够查找错误.
我究竟做错了什么?当我在windows shell中运行devenv时,我可以看到调试输出,但不是在cygwin中.它被发送到哪里,我该如何取回?
当将高斯模糊应用于图像时,通常西格玛是参数(示例包括Matlab和ImageJ).
怎么知道sigma应该是什么?有没有数学方法来找出最佳sigma?就我而言,我在图像中有一些与背景相比明亮的对象,我需要在计算上找到它们.我将应用高斯滤波器使这些物体的中心更加明亮,这有助于找到它们.如何确定最佳sigma?
使用detectMSERFeatures从Matlab中的图像中找到最大稳定的极值区域(MSER).
是否有任何补丁或方法可以从Matlab 获取分层MSER组件树?
当Matlab计算区域时,无论如何都会生成此树 - 它只返回每个区域树中最"稳定"的组件.由于这个树已经存在,我正在寻找从Matlab库中向用户代码公开的方法,这样可以隐藏这个部分,并且只提供最终的"最大稳定"区域.
任何事情都是可以接受的 - 修改Matlab内置代码,补丁,黑客等等.(我意识到OpenCV有这样的补丁,但是我试图避免移植到OpenCV,因为大多数其他程序都是用Matlab编写的).
编辑:(从原来的分层MSER论文)

Detected MSERs(左), MSER Tree(右)
我正在寻找技术来为我正在工作的网站上的用户生成"邻居"(有相似品味的人); 类似于last.fm的工作方式.
目前,我有一个可以发挥作用的用户的兼容功能.它对用户进行排名1)评级相似的项目2)同样评价该项目.该函数重点高于2,如果在生成"邻居"时我只使用其中一个因素,这将是最重要的.
我的一个想法是只计算每个用户组合的兼容性,并选择最高评级的用户作为用户的邻居.这样做的缺点是,随着用户数量的增加,这个过程需要花费很长时间.对于仅1000个用户,它需要对兼容性功能的1000C2(0.5*1000*999 = = 499 500)调用,这在服务器上也可能非常繁重.
所以我正在寻找任何建议,文章的链接等关于如何最好地实现这样的系统.