我正在尝试使用C++ 0x,特别是lambda表达式和decltype来简化我的一些代码,使用MSVC10 RC编译器.
我遇到了以下非常奇怪的问题:
template <typename F>
auto foo(F f) -> decltype(f()){
return f();
}
template <typename F>
void bar(F f){
f();
}
int main() {
bar([](){
foo([]() { }); // error C2893: Failed to specialize function template ''unknown-type' foo(F)'
});
}
Run Code Online (Sandbox Code Playgroud)
如注释中所示,编译器在该行上生成错误foo([]() { }).
我讨厌大喊"编译器错误",但我真的看不出任何有关此错误的好解释.显然,在外部lambda表达式中,编译器不能专门化foo内部lambda 的 函数模板.
但是,如果将定义foo更改为硬编码返回类型,如下所示:
template <typename F>
void foo(F f){
return f();
}
Run Code Online (Sandbox Code Playgroud)
然后一切都编好了.
当用于推断另一个我不知道的lambda范围内的lambda表达式参数的返回类型时,是否有一些模糊的decltype怪癖?
我在使用Perl的Net :: Telnet模块连接到SUSE linux机器时出了问题.代码如下所示:
my $t = new Net::Telnet (Timeout => 20);
$t->open($server);
$t->input_log("telnet.log");
$t->login($user, $pass);
my @lines=$t->cmd($command);
print @lines;
Run Code Online (Sandbox Code Playgroud)
日志文件如下所示:欢迎使用SUSE Linux Enterprise Server 10 SP1(x86_64) - 内核2.6.16.46-0.12-default(5).
vm-sles10u5 login: <myuser>
Password:
Last login: Thu Feb 25 10:41:07 EST 2010 from <mymachine> on pts/5
tset: unknown terminal type network
Terminal type?
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我从ZF(1.9.7)开始,我想从我所有项目之间共享的库中使用View Helpers.但我找不到如何将其目录添加到帮助程序路径.当我把它们放在应用程序的助手路径中时,我的牧师会罚款.
这是错误,我找到了ZF助手的路径,以及应用程序的路径.
object(ArrayObject)#71 (3) {
["exception"]=>
object(Zend_Loader_PluginLoader_Exception)#70 (6) {
["message:protected"]=>
string(151) "Plugin by name 'Voo' was not found in the registry; used paths:
Zend_View_Helper_: Zend/View/Helper/;C:/ZendStd/www/applis/VOO4_PROJECTX/views\helpers/"
["string:private"]=>
string(0) ""
["code:protected"]=>
int(0)
["file:protected"]=>
string(89) "C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Loader\PluginLoader.php"
["line:protected"]=>
int(401)
Run Code Online (Sandbox Code Playgroud)
最好的问候
塞德里克
我想单元测试以下ASP.NET MVC控制器索引操作.我该如何替换下面断言中的实际参数(以?为标记).
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
public class StatusController : Controller
{
public ActionResult Index()
{
return Content("Hello World!");
}
}
}
[TestMethod]
public void TestMethod1()
{
// Arrange
var controller = CreateStatusController();
// Act
var result = controller.Index();
// Assert
Assert.AreEqual( "Hello World!.", ? );
}
Run Code Online (Sandbox Code Playgroud) 我想要一个jquery解决方案,我必须接近,需要做什么?
$('html').bind('keypress', function(e)
{
if(e.keyCode == 13)
{
return e.keyCode = 9; //set event key to tab
}
});
Run Code Online (Sandbox Code Playgroud)
我可以返回false并且它阻止按下回车键,我想我可以将keyCode更改为9以使其成为选项卡但它似乎不起作用.我必须接近,发生了什么事?
我想列出函数消耗的全局变量/宏以及函数输出.例如,对于:
void myfn(void) {
out1 = in + 1;
out2 = 2;
}
Run Code Online (Sandbox Code Playgroud)
..该工具将输入列为'in',输出列为'out1'和'out2'.
有谁知道这样的工具?
我发现我应该使用重置CSS文件来制作网站,但在我加入之后,所有<em>和<code>标签都会失去它们的风格.<em>不再是斜体,<code>不再是常量字体.
我通过添加来修复它em { font-style: italic; },但是我不能为所有失去风格的标签添加它吗?
有什么想法吗?
谢谢,Boda Cydo.
我很想写一些 Java 代码,这些代码基本上只是播放一个简短的 .wav 文件——“短”我的意思是几分之一秒。(我使用的文件位于 /usr/share/sounds/generic.wav,供使用 Ubuntu 的人使用。)
问题是,我似乎无法弄清楚如何可靠地播放该样本,即在我所有的尝试中,我可以让我的程序以 5 次中的 4 次左右播放声音,但永远不会 100%。
这是迄今为止作为独立程序效果最好的方法:
File soundFile = new File("/usr/share/sounds/generic.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(soundFile);
clip.open(inputStream);
clip.start();
Run Code Online (Sandbox Code Playgroud)
(请注意,代码甚至没有调用 clip.stop() )但即使有那个,如果我连续运行几次,迟早会有一个没有播放任何声音的运行,但没有也有例外。
我尝试过的变化:
1) 将音频文件加载到字节数组中并将其传递给 clip.open
2) 将 LineListener 附加到剪辑以等待 STOP 事件
加上一些随机试验,但到目前为止,我还没有设法创建每次都有效的代码。
我还知道以下错误:http : //bugs.sun.com/bugdatabase/view_bug.do?bug_id=4434125但我使用的是 Java 1.6 并且报告声称 Java 1.5 或更高版本应该没问题.
有任何想法吗?是PulseAudio吗?
使用标准的TListView组件(ViewStyle = vsReport),我附加了一个TImageList,并成功地将图像添加到第一列(Item.ImageIndex := 0)和后续列(Items[0].SubItemImages[1] := 1).
如果我然后将CheckBoxes属性设置为True,则SubItems上的图像将消失.主图像保留(由一个设置Item.ImageIndex),但SubItems丢失了他们的图像.
我也注意到OnGetSubItemImage事件不会发生时CheckBoxes = True
有没有人知道这方面的方法?
Register-ObjectEvent在必需参数InputObject中查找对象实例.对象的静态(共享)事件的语法是什么?
更新:更正TimeChanged的语法:
$systemEvents = [Microsoft.Win32.SystemEvents]
$timeChanged = Register-ObjectEvent -InputObject $systemEvents
-EventName 'TimeChanged' -Action { Write-Host "Time changed" }
Run Code Online (Sandbox Code Playgroud)
不幸的是,系统事件不会在PowerShell ISE中发出信号.以下是使用对象的staic事件的示例:
$networkInformation = [System.Net.NetworkInformation.NetworkChange];
$networkAddressChanged = Register-ObjectEvent -InputObject $networkInformation
-EventName 'NetworkAddressChanged'
-Action { Write-Host "NetworkAddressChanged event signaled" }
Run Code Online (Sandbox Code Playgroud) events ×2
actionresult ×1
asp.net-mvc ×1
audio ×1
c ×1
c++ ×1
c++11 ×1
css ×1
css-reset ×1
decltype ×1
delphi ×1
java ×1
jquery ×1
keyevent ×1
lambda ×1
listview ×1
perl ×1
php ×1
powershell ×1
telnet ×1
unit-testing ×1
view-helpers ×1