问题列表 - 第26744页

如何在可变参数函数中的所有参数上调用std :: forward?

我只是编写一个通用对象工厂并使用boost预处理器元库来创建一个可变参数模板(使用2010并且它不支持它们).我的函数使用rval引用并std::forward进行完美的转发,它让我思考...当C++ 0X出来并且我有一个标准编译器时,我会使用真正的可变参数模板.但是,我怎么称呼std::forward这些论点?

template <typename ...Params>
void f(Params... params) // how do I say these are rvalue reference?
{
    y(std::forward(...params)); //? - I doubt this would work.
}
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法就是需要手动拆包... params,我也不是那里.是否有更快的语法可行?

c++ rvalue-reference variadic-templates perfect-forwarding c++11

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

OOP练习让对象互相引用是不是很糟糕?

原谅我的noobness.我正在制作一个游戏,其中几个角色彼此之间有关系,他们需要能够相互交互并存储一些关于彼此感觉的关系数据.

我为每个角色都有一个对象.为了执行这些交互,每个角色对象是否都有一个包含所有其他角色对象的数组?有一个更好的方法吗?

编辑回答问题: 我的语言是C#.

我在想的是,setup类会创建一个包含所有字符的数组,然后将该数组作为参数传递给每个字符的构造函数.

至于关系的类型,有五个字符,但我想在以后添加更多的情况下使其可扩展.角色互相交谈.他们说的是他们的情绪和他们对这个角色的感受.另外,另一个角色对他们说的话会影响他们的情绪以及他们对角色的感受.他们可以进行一对一的对话或分组交谈,因此角色A可以同时对角色B,C,D,E和F说些什么.

顺便说一句,我从这个线程中学到了很多东西.谢谢大家!谢谢!

oop

25
推荐指数
4
解决办法
7117
查看次数

在同一个线程中多次锁定互斥锁

我正在开发嵌入式Linux操作系统(uClinux)上的应用程序,我需要能够多次锁定互斥锁(通过相同的线程).

我有一个mutex和一个mutexattr定义和初始化如下:

pthread_mutexattr_t waiting_barcode_mutexattr;
pthread_mutex_t waiting_barcode_mutex;

pthread_mutexattr_init(&waiting_barcode_mutexattr);
pthread_mutexattr_settype(&waiting_barcode_mutexattr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&waiting_barcode_mutex, &waiting_barcode_mutexattr);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试获取锁定两次时它会阻塞第二个锁:

pthread_mutex_lock(&waiting_barcode_mutex);
pthread_mutex_lock(&waiting_barcode_mutex);
Run Code Online (Sandbox Code Playgroud)

我错误地初始化它还是有更好的方法来实现它?

提前致谢.

结论:

  • 显然PTHREAD_MUTEX_RECURSIVE或PTHREAD_MUTEX_RECURSIVE_NP不起作用,因此我无法创建可重入的互斥锁.
  • try_lock也不好.如果可以,它获取锁定,如果无法获取锁定则返回错误.不幸的是,错误只是告诉我互斥锁已经在使用中,我不知道当前线程是否已经拥有锁.
  • 如果当前线程有锁,pthread_mutex_lock可以返回错误,但为此我需要创建一个PTHREAD_MUTEX_ERRORCHECK类型的互斥锁,我也不能创建一个.

c linux posix uclinux embedded-linux

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

从GUI启动和与控制台应用程序通信

我想在C#中为国际象棋制作一个GUI.现代免费提供的引擎使用UCI接口,该接口作为独立的控制台应用程序运行,并通过文本命令和输出进行通信.

如何在后台透明地向我的GUI用户运行控制台程序(这些国际象棋引擎)并与之通信?

c#

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

ASP.NET MVC - 样式表必须放在Site.Master文件中吗?

我注意到我无法在任何页面上添加样式表.必须将它们添加到母版页.

我在主视图中已经有大约15个样式表,这看起来有些过分,因为只有部分页面使用某个样式表.

我想我可以通过javascript引用该文件(虽然,我无法想到我的头脑中有多少),但不必使用任何东西真的很好.

css c# asp.net-mvc stylesheet site.master

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

C++可以简化Lua VM的实现吗?

对于那些浏览过Lua C VM实现的人来说,使用C++会大大简化实现吗?

lua vm-implementation

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

将数据导入mysql的最佳方法

我有一个包含500,000行和大约10列的表格

我如何将其导入mysql?

mysql sql ms-access

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

如何在Perl中将十进制数转换为二进制?

我试图制作一个程序,将十进制数或文本转换为Perl中的二进制数.程序要求用户输入字符或字符串,然后将结果打印到控制台.我该怎么做呢?我一直在研究的代码如下,但我似乎无法修复它.

print "Enter a number to convert: ";
chomp($decimal = <STDIN>);
print "\nConverting $number to binary...\n";
$remainder = $decimal%2;
while($decimal > 0)
{
    $decimal/2;
    print $remainder;
}
Run Code Online (Sandbox Code Playgroud)

algorithm binary perl decimal

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

在每个控制器中声明$ name的目的是什么

我靠蛋糕PHP.
我注意到每个Controller中都声明了一个变量$ name.
它的目的是什么?
它是指表格网站的名称吗?

<?php
class SitesController extends AppController { 
var $name = 'Sites';
...
}
?>
Run Code Online (Sandbox Code Playgroud)

如果是,用户可以像这样引用多个表吗?
var $ name ='Sites','Sites2','Sites3';

cakephp

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

在asp.net中更改光标

我想在我的asp.net应用程序中将光标更改为沙漏,让我的用户知道该进程正在运行.我搜索了一个答案,并建议使用如下javascript.

1)添加此javascript

function hourglass() {

    document.body.style.cursor = "wait";
}
Run Code Online (Sandbox Code Playgroud)

2)然后在我的代码页面加载事件中:

btnImport.Attributes.Add("onclick", "javascript: hourglass();");
Run Code Online (Sandbox Code Playgroud)

当btnImport是他们点击的按钮时

但这不起作用.但是,如果我向沙漏功能添加警报.它确实有效.有没有办法让它在没有警报的情况下工作.

提前致谢.

鲍勃阿瓦隆

javascript c# asp.net

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