有人可以帮助我理解这句话的意思吗?
[](int* p){delete p;}
means?
这是什么意思?
我在shared_ptr的文档中找到了它。 http://www.cplusplus.com/reference/memory/shared_ptr/shared_ptr/
有人可以帮助我理解这句话的意思吗?
[](int* p){delete p;}
means?
这是什么意思?
我在shared_ptr的文档中找到了它。 http://www.cplusplus.com/reference/memory/shared_ptr/shared_ptr/
这表示一个类似于C++11的lambda表达式(“lambda函数”)。它接收一个指向整数的指针并将其delete
掉。
这类似于
void foo(int* p){
delete p;
}
boost::shared_ptr<int>(new int(7), &foo)
中不是有效的删除器吗?boost::shared_ptr
的文档暗示删除器类型必须是可复制构造的(void()(int)也是如此),并且d(t)
不能抛出异常(同样正确)。或者在boost的眼中,原始类型不符合“可复制构造”的条件吗? - Yakk - Adam Nevraumont