问题列表 - 第36946页

仿函数的调用和函数调用之间的详细区别?

这个工作的关键原因是for_each()实际上并没有假设 它的第三个参数是一个函数.它只是假设它的第三个参数是可以用适当的参数调用的东西.适当定义的对象与 - 函数一样 - 并且通常比 - 更好.例如,内联类的应用程序操作符比内联作为函数指针传递的函数更容易.因此,函数对象通常比普通函数执行得更快.具有应用程序运算符(第11.9节)的类的对象称为类似函数的对象,仿函数或简称为函数对象.

[Stroustrup,C++第3版,18.4-最后一段]

  1. 我一直认为operator()调用就像在运行时调用函数一样.它与普通函数调用有什么不同?

  2. 为什么内联应用程序操作符比正常函数更容易?

  3. 它们如何比函数调用更快?

c++ stl functor function-object

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

在cuda内核中运行

有什么方法可以在cuda内核中有一个函数.我的意思是我的cuda内核很长很难调试.谢谢.

cuda

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

在 macOS 上以编程方式获取硬盘信息

我需要一种方法来获取 OS X 上的完整硬盘信息,这意味着所有硬盘型号名称、SATA/ATA 控制器、卷、磁盘标识符等。我检查了diskutil,但它不包含 SATA 控制器信息,system_profiler具有所有我需要的信息,但它的 XML 输出不一定像我想要的那样组织好。是否有任何低级别的 Carbon/C API 可以让我这样做?

c macos cocoa macos-carbon objective-c

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

如何更改UIAlertView取消按钮文本

我想知道如何在运行时更改UIAlert的取消按钮文本.

iphone cocoa-touch

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

Java EE 6 - 嵌入式容器EJB测试

这个问题是关于Java EE 6,使用glassfish v3 embedded-all.

我有一个单元测试,使用EJBContainer来测试我的无状态EJB.问题是我在使用JNDI查找EJB(远程)时遇到问题:

setup() {

  ctx = EJBContainer.createEJBContainer().getContext();

}

...

test() {

BookService bookService = (BookService)ctx.lookup("java:global/BookServiceEJB!com.something.service.BookService");

...

}

@Stateless
public class BookServiceEJB implements BookService {
...
}

@Remote
public interface BookService {
...
}
Run Code Online (Sandbox Code Playgroud)

给出例外:

javax.naming.NamingException: Lookup failed for 'java:global/BookServiceEJB!com.something.service.BookService' in SerialContext  [Root exception is javax.naming.NameNotFoundException: BookServiceEJB!com.something.service.BookService not found]

...

caused by: javax.naming.NameNotFoundException: BookServiceEJB!com.something.service.BookService not found
Run Code Online (Sandbox Code Playgroud)

我尝试了几个JNDI资源路径:

例如

java:global/BookServiceEJB

java:global/BookService
Run Code Online (Sandbox Code Playgroud)

甚至:

java:global/BookShelf-1.0-SNAPSHOT/BookServiceEJB
Run Code Online (Sandbox Code Playgroud)

等等...

没有用

没有配置任何xml部署文件,只有persistence.xmlMETA-INF.

测试使用maven surefire: …

jndi java-ee glassfish-embedded java-ee-6 glassfish-3

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

Matlab:如何获取图形句柄中的所有轴手柄?

如何获得图形手柄中的所有轴手柄?

给定数字句柄hf,我发现get(hf, 'children')可能会返回所有轴的句柄.但是,Matlab帮助建议它可能返回的不仅仅是轴句柄:

这个数字的孩子.包含所有轴的手柄的矢量,图中显示的用户界面对象.您可以更改手柄的顺序,从而更改显示屏上对象的堆叠.

有没有办法只获得图形手柄中的轴柄?或者我怎么知道返回的get(hf, 'children')句柄是否是一个斧柄?

谢谢!

matlab axes figure

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

将委托作为方法参数传递

我目前正在开发一个EventManager类,以确保没有事件连接到死WCF双工客户端,并且还控制防止从同一客户端到一个事件的多个连线.

现在基本上,我坚持尝试将事件委托传递给将控制这样的赋值的函数.

var handler = new SomeEventHandler(MyHandler);
Wire(myObject.SomeEventDelegate, handler);
Run Code Online (Sandbox Code Playgroud)

称之为:

private void Wire(Delegate eventDelegate, Delegate handler)
{
    // Pre validate the subscription.
    eventDelegate = Delegate.Combine(eventDelegate, handler);
    // Post actions (storing subscribed event delegates in a list)
}
Run Code Online (Sandbox Code Playgroud)

更新

SomeEventDelegate包装器的代码是:

public Delegate SomeEventDelegate
{
    get { return SomeEvent; }
    set { SomeEvent = (SomeEventHandler) value; }
}

event SomeEventHandler SomeEvent;
Run Code Online (Sandbox Code Playgroud)

显然代理没有被返回到myObject.SomeEventDelegate并且我无法从方法返回Delegate,因为我之后也需要一些验证.你对如何做到这一点有任何想法吗?

c# parameters events delegates

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

Nodejs Web服务器在加载页面时调用requestListener两次

以下是文档中的示例Web服务器,添加了一个计数器.只要客户端/浏览器请求页面,它就会将计数器打印到控制台.

但是,当浏览器请求时,它被调用两次.为什么?

这就是我期望会发生的事情:

browser : Hello World 1
console : Counter 1
[reload page]
browser : Hello World 2
console : Counter 2
Run Code Online (Sandbox Code Playgroud)

但这发生了:

browser : Hello World 1
console : Counter 1
          Counter 2
[reload page]
browser : Hello World 3
console : Counter 3
          Counter 4
Run Code Online (Sandbox Code Playgroud)

我使用命令行运行代码

$ node example.js
Run Code Online (Sandbox Code Playgroud)

这是代码:

  var 
    http = require('http'),
    counter = 0,
    sys = require('util');
  http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    counter++;
    res.end('Hello World ' + counter + '\n');
    sys.puts('Counter ' …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

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

如何使用hibernate.reveng.xml更改自引用多对多集的名称?

我有一个在Oracle数据库上使用Hibernate的项目,所有实体都是在hibernate.reveng.xml文件的控制下直接从Hibernate Tools生成的.

我有一个类使用中间表与自身有多对多的关系,如下所示:

PERSON:
  ID
  ...

PERSON_PERSON:
  PARENT_ID --> PERSON.ID
  CHILD_ID  --> PERSON.ID
Run Code Online (Sandbox Code Playgroud)

没有任何特定的指令,Hibernate Tools会自动生成一个如下所示的类:

public class Person {
    private Long id;
    private Set<Person> personsForParentId = new HashSet<Person>(0);
    private Set<Person> personsForChildId = new HashSet<Person>(0);
}
Run Code Online (Sandbox Code Playgroud)

因为在编码以确定哪个是父集合以及哪个是子集时,这不是很有用,我想将它们重命名为"父母"和"孩子".

我一直在编辑hibernate.reveng.xml以试图强制它重命名该字段,但我找不到有用的东西.我不确定我是在PERSON表,PERSON_PERSON表或两者上指定更改,以及要更改哪些属性.

我习惯手动设置这些类,但是在这个项目中我无法控制构建过程,因此我必须处理Hibernate Tools生成的内容,所以我真的只需要创建Hibernate Tools做我想做的.

orm many-to-many hibernate reverse-engineering hibernate-tools

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

即使图像无效,Firefox"onerror"也不会触发

我在image标签上有一个onerror处理程序,用于在找不到远程图像时处理切换.

问题是,对于某些破碎的远程图像,它不起作用.

http://a3.twimg.com/profile_images/522455109/calvin-and-hobbessm_normal.jpg

<img onerror="this.src='/images/pic_not_found.png'" src="http://a3.twimg.com/profile_images/522455109/calvin-and-hobbessm_normal.jpg">
Run Code Online (Sandbox Code Playgroud)

图片如下:1)找到远程图像时,2)未找到远程图像(未触发错误),3)未找到远程图像(触发错误)

替代文字

javascript firefox mime-types

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