问题列表 - 第23588页

在公共容器中存储从公共接口派生的类的对象最安全的方法是什么?

我想管理从公共容器中的共享接口类派生的一堆类对象.

为了说明这个问题,我们假设我正在构建一个包含不同演员的游戏.让我们来调用接口IActor,并获得EnemyCivilian如此.

现在,我的想法是让我的游戏主循环能够做到这一点:

// somewhere during init
std::vector<IActor> ActorList;
Enemy EvilGuy; 
Civilian CoolGuy;
ActorList.push_back(EvilGuy);
ActorList.push_back(CoolGuy);
Run Code Online (Sandbox Code Playgroud)

// main loop
while(!done) {
    BOOST_FOREACH(IActor CurrentActor, ActorList) {
        CurrentActor.Update();
        CurrentActor.Draw();
    }
}
Run Code Online (Sandbox Code Playgroud)

... 或类似的规定.这个例子显然不起作用,但这就是我在这里问的原因.

我想知道:在一个通用的异构容器中管理这些对象的最佳,最安全,最高级的方法是什么?我知道各种方法(Boost :: Any,void*,带有boost :: shared_ptr的处理程序类,Boost.Pointer容器,dynamic_cast)但我无法确定哪种方法可以去这里.

另外我想强调一点,我希望尽可能远离手动内存管理或嵌套指针.

非常感谢:).

c++ containers interface heterogeneous

7
推荐指数
2
解决办法
314
查看次数

如何使用NHibernate QueryOver api获取行数?

我正在使用作为NHibernate 3.x一部分的QueryOver api.我想得到一个行计数,但我正在使用的方法返回所有对象,然后获取集合的计数.有没有办法只返回行数的整数/长值?

我目前正在使用:

_session.QueryOver<MyObject>().Future().Count()
Run Code Online (Sandbox Code Playgroud)

nhibernate rowcount queryover

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

强制fputcsv为*all*字段使用Enclosure

当我使用fputcsv写一行到打开的文件句柄时,PHP会将一个封闭的字符添加到它认为需要的任何列,但是会留下没有这些外壳的其他列.

例如,您最终可能会得到这样的一行

11,"Bob ",Jenkins,"200 main st. USA ",etc
Run Code Online (Sandbox Code Playgroud)

如果没有将虚假空间附加到每个字段的末尾,是否有任何方法可以强制fputcsv始终用外壳包含列(默认为")"字符?

php csv fputcsv

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

Git:我可以将我的工作目录提交到新分支而不将其提交给当前分支吗?

我正在研究一个项目,并将所有测试都传递给主分支.然后我做了一些更改,当一切都开始失败时,我意识到也许我应该在不同的分支上进行这些更改.有没有办法可以将更改提交到新分支而不将它们提交到我的主分支,这样主机仍然可以通过测试?

git branch commit

16
推荐指数
2
解决办法
4423
查看次数

如何使用JSON和jQuery在Rails 2.3.5中显示服务器错误

我在我的应用程序的页面上进行了就地编辑(使用Rails 2.3.5和jQuery).我想知道更新失败时如何在页面上显示错误.

我正在使用ajax(XMLHttpRequest)来保存对Comment对象的更新.控制器有一个这样的更新方法:

def update
  @comment = Comment.find(params[:id])
  respond_to do |format|
    # if @comment.update_attributes!(params[:comment])
    if false #deliberately forcing a fail here to see what happens
      format.json { render :nothing =>  true }
    else
      format.json { render :json => @comment.errors, :status => :unprocessable_entity }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

在Firebug中,我可以看到服务器返回"422"(适当的验证错误状态代码).但它是对XMLHttpRequest的响应,因此没有重定向到错误页面.

我想我其实想要这样做:

format.json { render :json => @comment.errors}
Run Code Online (Sandbox Code Playgroud)

或者这个:

format.json {render :json => { :status => :error, :message => "Could not be saved" }.to_json, :status => 400 }
Run Code Online (Sandbox Code Playgroud)

并触发一些迭代(并显示)任何错误的Javascript函数.

我正在使用rails插件REST来实现就地编辑.它似乎没有任何回调函数来处理故障.我有什么选择?我可以编写一些Javascript来响应失败情况而不破解插件吗?我是否必须破解rest_in_place插件来处理故障情况?是否有更好的插件(对于Rails或jQuery)处理就地编辑,包括失败条件?

UPDATE

来自Peter …

javascript ajax jquery json ruby-on-rails

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

如何从rails控制台向数据库添加数据

我有一个User模特.

>> @u = User.new
=> #<User id: nil, userid: nil, password: nil, created_at: nil, updated_at: nil, user_first_name: nil, user_last_name: nil, user_status: nil, user_type: nil>
Run Code Online (Sandbox Code Playgroud)

我无法Users从控制台向表中添加数据.我正在做以下事情:

>> @u.userid="test1"
=> "test1"
>> @u.password="test2"
=> "test2"
>> @u.user_first_name="test3"
=> "test3"
>> @u.user_last_name="test4"
=> "test4"
>> @u.user_status="test5"
=> "test5"
>> @u.user_type="test6"
=> "test6"
>> @u.save
NoMethodError: undefined method `userid' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我只是想在应用程序中添加一行数据.

ruby-on-rails

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

为什么Cookie只发送到http://www.example.com而不是http://example.com?

我有一个PHP登录,一旦有人登录就会设置2个cookie.问题是,如果您从http://www.example.com登录并转到http://example.com,您将发现自己没有登录.我认为这是因为浏览器只将cookie发送到第一句法.

它只是一个域名,不同之处在于www.域名之前,那么无论是否存在,如何将cookie设置为整个域名www.

<?php setcookie('username',$username,time()+3600); ?>
Run Code Online (Sandbox Code Playgroud)

php cookies

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

多次导入同一个模块

几个小时后,我发现了应用程序中的错误原因.我的应用程序的源代码结构如下:

main/
    __init__.py
    folderA/
        __init__.py
        fileA.py
        fileB.py
Run Code Online (Sandbox Code Playgroud)

真的,还有大约50个文件.但那不是重点.在main/__init__.py,我有这个代码:from folderA.fileA import *

folderA/__init__.py我有这个代码:

sys.path.append(pathToFolderA)
Run Code Online (Sandbox Code Playgroud)

folderA/fileB.py我有这个代码:

from fileA import *
Run Code Online (Sandbox Code Playgroud)

问题是fileA被导入两次.但是,我只想导入一次.

解决这个问题(我ATLEAST)最显而易见的方法是改变从某些路径pathfolderA.path

但我觉得Python首先应该没有这个错误.还有哪些其他解决方法不需要每个文件知道它的绝对位置?

python import import-hooks

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

如何使用C++在Windows中获取系统文件夹路径(C:\ Windows C:\ Program Files)?

我在c ++ MFC中编程,

我想得到"C:\ windows""c:\ program files"文件夹路径.

有时用户可能会在其他文件夹中设置窗口,例如c:\ windows0.

是否有任何API来获取Windows和程序文件路径的绝对路径?

非常感谢!

c++ windows api mfc

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

棘手的模型继承 - Django

我觉得这有点棘手,至少对我而言.:)

所以我有4个模特Person,Singer,BassistNinja.

歌手,贝斯手和忍者继承自人.


问题是每个Person都可以是它的任何子类.

例如,一个人可以是歌手和忍者.另一个人可以是贝斯手和忍者.另外一个可以全部三个.

我该如何组织我的模特?


非常感谢帮助!

python django inheritance django-models django-orm

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