问题列表 - 第22595页

将非模板基类向下转换为模板化派生类:是否可能?

我正在为游戏实现一个事件系统.它使用事件队列和数据结构来保存给定事件类型的所有已注册事件处理程序.它到目前为止注册处理程序工作得很好,但是当取消注册它们时(例如,当游戏对象被销毁时会发生这种情况)我在模板和转换方面遇到了一些麻烦.

我已经将EventHandler定义为某种函子,部分基于Szymon Gatner在http://www.gamedev.net/reference/programming/features/effeventcpp/上的文章.确切地说,我使用了HandlerFunctionBase和MemberFunctionHandler类定义并提出了:

class BaseEventHandler
{
public:
    virtual ~BaseEventHandler(){}
    void handleEvent(const EventPtr evt)
    {
        invoke(evt);
    }
private:
    virtual void invoke(const EventPtr evt)=0;
};

template <class T, class TEvent>
class EventHandler: public BaseEventHandler
{
    public:
    typedef void (T::*TMemberFunction)(boost::shared_ptr<TEvent>);
    typedef boost::shared_ptr<T> TPtr;
    typedef boost::shared_ptr<TEvent> TEventPtr;

    EventHandler(TPtr instance, TMemberFunction memFn) : mInstance(instance), mCallback(memFn) {}

    void invoke(const EventPtr evt)
    {
        (mInstance.get()->*mCallback)(boost::dynamic_pointer_cast<TEvent>(evt));
    }
    TPtr getInstance() const{return mInstance;}
    TMemberFunction getCallback() const{return mCallback;}

    private:
        TPtr mInstance;
    TMemberFunction mCallback;
};
Run Code Online (Sandbox Code Playgroud)

然后我想到的EventManager类上的unregisterHandler()方法的初始实现将如下所示:

// EventHandlerPtr is a boost::shared_ptr<BaseEventHandler>. …
Run Code Online (Sandbox Code Playgroud)

c++ templates casting event-handling

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

是否存在类似jQuery.toggle(boolean)的东西?

我写了很多类似于下面代码的东西.它基本上根据某些条件切换元素.

在下面的组成示例中,条件是"如果agree选中复选框且name字段不为空".

$("button").click(function() {
  if ($("#agree").is(":checked") && $("#name").val() != "" ) {
    $("#mydiv").show();
  } else {
    $("#mydiv").hide();
  }
});
Run Code Online (Sandbox Code Playgroud)

我希望有某种jQuery函数可以像这样工作.

$("button").click(function() {
  var condition = $("#agree").is(":checked") && $("#name").val() != "" );
  $("#mydiv").toggle(condition);
});
Run Code Online (Sandbox Code Playgroud)

那里有类似的东西吗?或者除了第一个例子之外还有其他方法以更少的if-else-ish方式做到这一点吗?

javascript jquery toggle

65
推荐指数
3
解决办法
3万
查看次数

为什么PHP脚本在两台服务器上使用不同的内存量?

我有一个相当大的webapp,我在Media Temple服务器上运行.我们最近决定将其移至Rackspace云.当我运行时get_memory_usage,每页加载时我使用大约4mb的RAM.所以我想我有几个问题.

  1. 有关系吗?
  2. 为什么会这样?

php

2
推荐指数
1
解决办法
164
查看次数

Wordpress 2.9主题选项管理页面与图像上传

我正在为我的wordpress 2.9主题创建一个主题选项页面,我想要包含一个我可以上传不同徽标的字段.到目前为止,我已经添加了textareas,输入和复选框,但我不确定如何上传图像.有没有人知道一个解释如何做到这一点的教程,或者任何人都可以提供一些见解?

谢谢您的帮助.

php wordpress themes

2
推荐指数
1
解决办法
3879
查看次数

索引搜索与聚簇索引扫描 - 为什么选择扫描?

以下查询在LastModifiedTime列的索引上使用索引搜索.

SELECT 
      CONVERT(varchar, a.ReadTime, 101) as ReadDate,
      a.SubID,
      a.PlantID,
      a.Unit as UnitID,
      a.SubAssembly
FROM dbo.Accepts a WITH (NOLOCK)
WHERE  a.LastModifiedTime BETWEEN '3/3/2010' And '3/4/2010'
AND a.SubAssembly = '400'
Run Code Online (Sandbox Code Playgroud)

下面的查询与上述查询几乎完全相同,使用聚簇索引扫描,而不是LastModifiedTime上的索引.谁能告诉我为什么?而且,更重要的是,我可以做些什么来让SQL Server在LastModifiedTime列上使用索引,而不使用索引提示.

Declare @LastModifiedTimeEnd dateTime
Declare @LastModifiedTimeStart dateTime

    SELECT 
          CONVERT(varchar, a.ReadTime, 101) as ReadDate,
          a.SubID,
          a.PlantID,
          a.Unit as UnitID,
          a.SubAssembly
    FROM dbo.Accepts a WITH (NOLOCK)
    WHERE  a.LastModifiedTime BETWEEN @LastModifiedTimeStart And @LastModifiedTimeEnd
    AND a.SubAssembly = '400'
Run Code Online (Sandbox Code Playgroud)

sql-server

8
推荐指数
2
解决办法
5640
查看次数

JPA异常:对象:...不是已知的实体类型

我是JPA的新手,我遇到了主键值自动生成的问题.

我有以下实体:

package jpatest.entities;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class MyEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    private String someProperty;

    public String getSomeProperty() {
        return someProperty;
    }

    public void setSomeProperty(String someProperty) {
        this.someProperty = someProperty;
    }

    public MyEntity() {
    }

    public MyEntity(String someProperty) {
        this.someProperty = …
Run Code Online (Sandbox Code Playgroud)

java jpa toplink

15
推荐指数
3
解决办法
6万
查看次数

Javascript regex:如何从字符串中提取“id”?

我有这个字符串: comment_1234

我想1234从字符串中提取。我怎样才能做到这一点?

更新:我无法得到您的任何答案……我的代码有问题吗?警报永远不会被调用:

var nameValue = dojo.query('#Comments .Comment:last-child > a[name]').attr('name');
alert('name value: ' + nameValue); // comment_1234
var commentId = nameValue.split("_")[1];
// var commentId = nameValue.match(/\d+/)[0];
// var commentId = nameValue.match(/^comment_(\d+)/)[1];
alert('comment id: ' + commentId); //never gets called. Why?
Run Code Online (Sandbox Code Playgroud)

解决方案:

我发现了我的问题......出于某种原因,它看起来像一个字符串,但实际上并不是一个字符串,所以现在我正在转换nameValue为一个字符串并且它正在工作。

var nameValue = dojo.query('#Comments .Comment:last-child > a[name]').attr('name'); //comment_1234
var string = String(nameValue); //cast nameValue as a string
var id = string.match(/^comment_(\d+)/)[1]; //1234
Run Code Online (Sandbox Code Playgroud)

javascript regex

2
推荐指数
1
解决办法
6363
查看次数

jQuery淡入ajax加载div不流畅

在本地运行以下内容时,淡入非常平滑,但在远程服务器上,加载到目标div中的内容会立即隐藏,然后再次淡入.

为什么会发生这种情况,我该如何解决?

我的jQuery(在document.ready内部)看起来像这样:

$(".dataclick").click(function()
{
    $('.clicktarget').hide().load($(this).attr("href")).fadeIn("slow");
    return false;
});
Run Code Online (Sandbox Code Playgroud)

我的HTML看起来像这样:

        <ul>
            <li><a class="dataclick" href="/data/lameness.html">Lameness Investigations</a></li>
            <li><a class="dataclick" href="/data/xrays.html">Xrays &amp; Ultrasonography</a></li>                               
            <li><a class="dataclick" href="/data/shockwave.html">Shockwave Therapy</a></li>
            <li><a class="dataclick" href="/data/prepurchase.html">Pre-Purchase Examinations</a></li>
            <li><a class="dataclick" href="/data/vettings.html">Vettings</a></li>                               
            <li><a class="dataclick" href="/data/reproduction.html">AI &amp; Full Reproductive Service</a></li>
            <li><a class="dataclick" href="/data/endoscopy.html">Endoscopy</a></li>
            <li><a class="dataclick" href="/data/acupuncture.html">Acupuncture</a></li>
            <li><a class="dataclick" href="/data/dentistry.html">Full Dentistry Service</a></li>
            <li><a class="dataclick" href="/data/castration.html">Castrations</a></li>                              
            <li><a class="dataclick" href="/data/gastroscopy.html">Gastroscopy</a></li>
            <li><a class="dataclick" href="/data/ridingschool.html">Riding School Inspection</a></li>
            <li><a class="dataclick" href="/data/24hremergency.html">24hr Emergency Service</a></li>                                
        </ul>

        <p>For more information on each service please click the relevant title/link.</p>
        </div>

        <div class="clicktarget"> …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

测试:我*想*测试web.config

我想在我的一个项目上做一些单元测试.这是一个Web项目,除了开发副本之外,只有一个程序副本.

我想写一些将使用的单元测试web.config.我理解通常情况下,测试人员会将这种外部依赖关系存根,因为他希望在没有测试的情况下测试代码,具体取决于web.config保持某些值.

但是,web.config在我的项目中应该始终保持某些值,并且我希望单元测试如果设置为无效值则会失败.例如,其中一个值是SQL连接字符串.

我想编写一个测试来读取连接字符串web.config.我设想测试可以连接到具有连接字符串的服务器,并且可能执行非常简单的命令SELECT system_user;.如果命令成功执行并返回测试通过的内容.否则,它失败了.我希望从web.config我正在测试的项目中读取连接字符串.

当然,ConfigurationManager通常不会web.config在另一个项目中寻找.我可以手动将web.config原始项目复制到测试项目中,但在每次测试之前我都必须这样做,我无法指望其他任何人这样做.

如何让我的测试项目web.config从另一个项目中读取?

asp.net unit-testing web-config web-testing

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

我无法分发JAXB封闭代码?

http://jaxb.java.net/上,它表示JAXB的双重许可证包含CDDL v1.0和GPL v2;

CDDL说:

  1. 分配义务3.1.源代码的可用性.您以可执行形式分发或以其他方式提供的任何涵盖软件也必须以源代码形式提供,并且源代码表单必须仅根据本许可证的条款分发.

那么,我不能在没有打开代码的情况下使用JAXB?

--update

"您分发的任何涵盖软件......";

1.3."涵盖软件"是指(a)原始软件,或(b)修改,或(c)包含原始软件的文件与包含修改的文件组合,在每种情况下包括其中的部分. https://glassfish.dev.java.net/public/CDDL+GPL.html

我开发的软件不被视为"包含原始软件的文件与包含修改的文件的组合"

java xml licensing jaxb

10
推荐指数
1
解决办法
2326
查看次数