C++ 中让对象的拷贝成为 显式 的

阅读更多关于《C++ 中让对象的拷贝成为 显式 的》

C++中对象的拷贝一般使用拷贝构造函数,从而对象的拷贝大多是隐式的,使用拷贝构造函数的隐式拷贝很方便,但是编译器无法识别不必要的拷贝,虽然我们人类可以识别这些不必要的拷贝,比如在写函数原型时,忘了加&,就会引发一个这样的非必要拷贝。 继续阅读

C++11: 使用 lambda 创建模板类 的 对象

阅读更多关于《C++11: 使用 lambda 创建模板类 的 对象》

C++ 中 lambda 可以直接传递给模板函数如 std::sort, 但无法传给模板类如 std::map,但是,使用一点小技巧,可以使用 lambda 创建模板类的对象,省了很多麻烦的 coding。这里给出一个示例: 继续阅读

Recursive Lambda in C++

阅读更多关于《Recursive Lambda in C++》

C++ 标准委员会真是太死板了,既然给 C++ 增加了 lambda,就真的按部就班地套用 lambda 的标准定义,也不加个 lambda的自引用机制。找了半天,除了那些学院派的足以把99%的人搞晕的 Fix Point + Y combinator,一个最实用的解决方案就是把 lambda bind 到 std::function<…>. 继续阅读