我遇到lambda表达式问题导致编译器崩溃(VC10)。
当我在字符串上使用boost :: trim时,它似乎只会崩溃。有没有合理的解释为什么会发生这种情况以及解决这种行为的方法?或者我是否必须在lambda内手动修剪?
这是导致崩溃的示例代码:
CreateBtn.MouseUpEvent += ([this](const input::MouseEventArgs& args)
{
Res.BlendBaseName = BlendTb.GetText();
//boost::trim(Res.BlendBaseName); this line causes compiler internal error
});
MouseUpEvent是我的类的对象,它只包含std :: functions的向量,如果这对任何方式都有帮助的话。
从lambda体内调用其他函数,但boost :: trim失败。在我看来,这是一个编译器错误。有什么想法吗?
编辑:这是输出窗口中的消息:
1>d:\development\lame\lame_framework_test\editormode.h(243): fatal error C1001: An internal error has occurred in the compiler.
1> (compiler file 'msc1.cpp', line 1420)