我正在用C++编写一个小矩阵库来进行矩阵运算.然而,我的编译器抱怨,在它之前没有.这个代码留在架子上6个月,在我之间我将我的计算机从debian etch升级到lenny(g ++(Debian 4.3.2-1.1)4.3.2)然而我在具有相同g ++的Ubuntu系统上遇到了同样的问题.
这是我的矩阵类的相关部分:
namespace Math
{
class Matrix
{
public:
[...]
friend std::ostream& operator<< (std::ostream& stream, const Matrix& matrix);
}
}
Run Code Online (Sandbox Code Playgroud)
而"实施":
using namespace Math;
std::ostream& Matrix::operator <<(std::ostream& stream, const Matrix& matrix) {
[...]
}
Run Code Online (Sandbox Code Playgroud)
这是编译器给出的错误:
matrix.cpp:459:错误:'std :: ostream&Math :: Matrix :: operator <<(std :: ostream&,const Math :: Matrix&)'必须只取一个参数
我对这个错误感到有些困惑,但是在6个月里做了大量的Java后,我的C++又变得有点生疏了.:-)
我正在做一个需要安静网址的接缝项目.我有一个映射到/ group/{group}/{locale}的视图.在那个页面上,我有一个所谓的消息列表.每条消息都有一个按钮,用于保存对消息的更改.这链接到这样的动作bean:
<h:commandButton type="submit" value="Save Changes" action="#{groupAction.update}" />
Run Code Online (Sandbox Code Playgroud)
每条消息都有一个锚点,因此/ group/{group}/{locale}#{id}可用于使浏览器转到该锚点.这就是我在POST后需要重定向的原因:
<page view-id="/group.xhtml">
<rewrite pattern="/group/{group}/{locale}"/>
<param name="group" value="#{groupAction.group}"/>
<param name="locale" value="#{groupAction.locale}"/>
<navigation from-action="#{groupAction.update}">
<redirect view-id="/group.xhtml?group=#{group}&locale=#{locale}##{id}"/>
</navigation>
</page>
Run Code Online (Sandbox Code Playgroud)
我还有以下重定向规则(UrlRewriteFilter)来获取正确的RESTful URL:
<outbound-rule>
<from>^/group.xhtml\?group=([\.\w]+)&locale=([\.\w]+)\#([\.\w]+)\?cid=(\d*)$</from>
<to type="temporary-redirect" last="true">/group/$1/$2#$3</to>
</outbound-rule>
Run Code Online (Sandbox Code Playgroud)
我在这里删除了对话.这已被测试过一部作品.然而,接缝仍会附加'?conversationId = {cid}'.所以有什么问题?好吧,想象一下像'/ group/{group}/{locale}#{id}?conversationId = {cid}'这样的网址.显然浏览器不喜欢这个,并且不会自动转到那个锚点.
我做了一些研究,发现我在缝文档中的问题:
29.1.4.2.使用重定向进行对话传播 此过滤器允许Seam跨浏览器重定向传播对话上下文.它拦截任何浏览器重定向,并添加一个指定Seam会话标识符的请求参数.重定向过滤器将默认处理所有请求,但也可以在components.xml中调整此行为:
<web:redirect-filter url-pattern="*.seam"/>
Run Code Online (Sandbox Code Playgroud)
我不需要重定向过滤器,我尝试在url-pattern中放置一些无效的东西来"禁用"过滤器.但是那没用.所以现在我的问题是:
如何在接缝中禁用重定向过滤器?
我找不到答案.seam文档讨论了在web.xml中禁用它,但我的尝试还没有成功.
好的,我在这里有点困惑.我试图通过在模型上使用注释来选择"DAO"类:
@Entity
@Table(name="dispatcher")
// use the Kamailio Base DAO for code that supports this annotation
@DAOSelector(dao = DAOBaseKamailio.class)
public class DispatcherSet extends Model {
[...]
}
Run Code Online (Sandbox Code Playgroud)
这是注释定义:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DAOSelector {
Class<?> dao();
}
Run Code Online (Sandbox Code Playgroud)
我使用以下代码返回正确的"DAO"类:
public static DAOInterface getCorrectDAO(final Object object) throws Exception {
final DAOSelector annotation =
object.getClass().getAnnotation(DAOSelector.class);
if(annotation != null) {
System.out.println("Annotation present: " +
annotation.dao().getName() + " for class " + object.getClass().getName());
final Object dao = annotation.dao().newInstance();
if(!(dao instanceof DAOInterface)) {
throw new Exception("Invalid …Run Code Online (Sandbox Code Playgroud) 我正在使用Cobertura计算具有JUnit测试用例的Java项目的代码/分支覆盖率.我知道100%的覆盖率并不能说明代码有多好,但目前只有6%.分行覆盖率为1%.我的直觉说分支覆盖可能更重要,因为该项目的决策性质.由于这是我目前唯一的大项目,我没有适当的代码/分支覆盖目标值的经验.
我相信分支覆盖在这个应用程序中非常重要,所以我将所需的值设置为100%.我已将代码覆盖率阈值定义为80%.
这些值的代码复杂性又是什么因素?
我可能过分强调数字,但我想听听其他人的经验.我知道这些值取决于项目的性质,但是我可以参考一些一般的指针/文章/个人经验吗?
我目前正在阅读Erich Gamma和其他人的"设计模式:可重复使用的面向对象软件的元素".我决定做一些小项目来查看将设计模式应用到我编写的软件的实际结果.
我应该对实施它们有多严格?我在互联网上看到了一些实现解释器模式的例子,它只是跳过了实现中的整个类/接口/方法.应该允许一个人做同样的事情,还是更好地严格执行以避免未来的问题,即预先支持功能?或者设计模式是不是被视为一切的答案,是否应该以适用于当前情况的方式应用,即特定于代码?
有没有办法获取传入请求的 IP 地址/端口?(我不想要消息中的数据,但我想要来自 SIP 堆栈本身的信息,最好还有接收请求的侦听点。)
到目前为止我还没有通过解析Javadoc找到任何解决方案。
java ×2
annotations ×1
c++ ×1
cobertura ×1
iostream ×1
jain-sip ×1
namespaces ×1
ostream ×1
reflection ×1
seam ×1
testing ×1