117得票18回答
Switch语句中使用返回值 -- 代码正确性

假设我有一段C语言的代码,大致结构如下:switch (something) { case 0: return "blah"; break; case 1: case 4: return "foo"; break; ...

64得票4回答
Sakamoto算法求解星期几的正确性

我正在使用坂本算法来从给定日期中找出星期几。 有人可以告诉我这个算法的正确性吗?我只需要从2000年到2099年的结果。 参考自维基百科的算法如下: int dow(int y, int m, int d) { static int t[] = {0, 3, 2, 5, 0, 3, ...

48得票4回答
什么时候需要使用std::ref?

考虑一下: std::tuple<int , const A&> func (const A& a) { return std::make_tuple( 0 , std::ref(a) ); } 使用std::ref在编写正确且可移植的代码时是否必需?(...

23得票5回答
何时需要指定JavaScript协议?

我原以为只有在URL属性中使用JavaScript,例如href中,才需要指定"protocol"。这是javascript:唯一的有用上下文吗?<a href="javascript:alert('Hello')">World!</a> 傻瓜:<form ons...

17得票6回答
尝试/使用资源和关闭连接、语句和结果集

最近我和我的教授讨论了关于如何处理基本的jdbc连接方案的问题。假设我们想要执行两个查询,这是他的建议: public void doQueries() throws MyException{ Connection con = null; try { con ...

16得票5回答
展示两个不同的斐波那契函数是等价的。

我正在尝试学习证明程序正确的确切含义。我从零开始,但在第一步/主题介绍上遇到了困难。 在这篇关于完全函数式编程的论文中,给出了斐波那契函数的两个定义。传统的定义如下:fib 0 = 0 fib 1 = 1 fib n = fib (n-1) + fib (n-2) --fib (n+2) =...

16得票1回答
Haskell/Idris中的开放类型级别证明

在 Idris/Haskell 中,可以通过注释类型并使用 GADT 构造函数(例如 Vect)来证明数据的性质,但这需要将性质硬编码到类型中(例如,Vect 必须是与 List 不同的单独类型)。 是否可能拥有具有开放属性集的类型(例如同时携带长度和运行平均值的列表),例如通过重载构造函数或...

15得票1回答
哪个编译器是正确的?需要在模板化的返回类型之前加上“template”吗?

这段代码(取自此问答)在g++编译器下可以正常编译通过,只要有返回类型前的template关键字。相反,VC10不会编译该代码,会报以下错误: error C2244: 'A::getAttr' : 无法将函数定义与现有声明匹配 如果我去掉template,VC10就可以通过编译,但g...

15得票4回答
无异常的VirtualMachineError保证

我从C++转到Java。在C++世界中,我们注重异常安全,并注意到mutator可能针对由mutator本身或其委托方法引发的异常提供不同的保证(最小、强和无抛出)。实现具有强异常保证的方法需要保证某些基本操作永远不会抛出异常。JLS对哪些操作可能抛出哪些异常做出了说明,但VirtualMac...

12得票6回答
多线程算法的正确性证明

多线程算法的设计、调试和验证都很难。Dekker算法是一个明显的例子,说明正确同步算法的设计有多么困难。Tanenbaum的《现代操作系统》在IPC章节中充满了这样的例子。请问是否有好的参考资料(书籍、文章)可供参考?谢谢!