![]() |
1
1
我强烈推荐 Boost.Phoenix ,当谈到在C++03中动态编写函子时,这是我的首选库。它是Boost.Bind的一个更好的替代品——这个库正在显示它的时代。
例如,Phoenix让我们在其函子上使用运算符来表示调用函子时该运算符的实际使用。因此
( LWS demo )
但Phoenix的另一个优点是它配备了一些电池。就我们而言,我们非常感兴趣
( LWS demo )
最后,我要补充一点,C++11绑定表达式是指定的,这样指向成员的指针就可以工作
任何东西
使用
( LWS demo ) |
![]() |
2
1
您可以使用成员函数指针调用bind,而成员运算符只不过是成员函数:
但说真的,你也可以写一个合适的函数来做你需要的事情,而不是那些不可读的boost.bind混乱(你能说“可维护性”吗?)。 因此,对于C++03,一个函数:
或C++03函子(您可以在函数内部局部定义它)
或C++11 lambda(比绑定狂欢更可读):
|
![]() |
lplplplp · 为什么不能访问函数外的结构指针 2 年前 |
![]() |
soupybionics · 了解Rust中参数化结构的生命周期 7 年前 |
![]() |
CodyBugstein · 如何查询MongoDB中引用的字段? 7 年前 |
![]() |
chabapok · 为什么通过DerefMut可变借用闭包不起作用? 7 年前 |
![]() |
storluffarn · C++:如何正确通过指向的向量 7 年前 |
![]() |
iLoveWagons · 对于x个数据结构,取消引用x次 8 年前 |
![]() |
CJ7 · 一个语句中数组内的取消引用数组? 8 年前 |