正确使用boost lambda
考虑以下 C++0x 代码:
a_signal.connect([](int i) {
if(boost::any_cast<std::string>(_buffer[i]) == "foo")
{
base_class<>* an_object = new derived_class();
an_object->a_method(_buffer[i]);
}});
它在 Boost Lambda 中的正确外观如何(因为此 C++0x 功能尚不能在 GCC 4.4 中使用)?
Consider the following piece of C++0x code:
a_signal.connect([](int i) {
if(boost::any_cast<std::string>(_buffer[i]) == "foo")
{
base_class<>* an_object = new derived_class();
an_object->a_method(_buffer[i]);
}});
How would it correctly look in Boost Lambda (since this C++0x feature can't be used in GCC 4.4 yet)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为这应该有效:
bind
、if_then
、ll_static_cast
、new_ptr
、_1
、var
(我认为ref
也是)是boost::lambda
的成员。但老实说,我个人会拒绝使用这样的代码:)
I think this should work:
bind
,if_then
,ll_static_cast
,new_ptr
,_1
,var
(and, i thinkref
too) are members ofboost::lambda
.But honestly, i would refuse to work with such code, personally :)