- 博客(6)
- 资源 (8)
- 收藏
- 关注
原创 C++ 中让对象的拷贝成为 显式 的
C++中对象的拷贝一般使用拷贝构造函数,从而对象的拷贝大多是隐式的,使用拷贝构造函数的隐式拷贝很方便,但是编译器无法识别不必要的拷贝,虽然我们人类可以识别这些不必要的拷贝,比如在写函数原型时,忘了加&,就会引发一个这样的非必要拷贝。如果这种情况很严重,我们可以禁用拷贝构造函数和赋值函数(声明成private),然后再提供一个显式拷贝函数,如:class HeavyObject {
2012-03-11 21:10:47 2117
C++ 中让对象的拷贝成为 显式 的
C++中对象的拷贝一般使用拷贝构造函数,从而对象的拷贝大多是隐式的,使用拷贝构造函数的隐式拷贝很方便,但是编译器无法识别不必要的拷贝,虽然我们人类可以识别这些不必要的拷贝,比如在写函数原型时,忘了加&,就会引发一个这样的非必要拷贝。如果这种情况很严重,我们可以禁用拷贝构造函数和赋值函数(声明成private),然后再提供一个显式拷贝函数,如:class HeavyObject ...
2012-03-11 21:10:00 143
原创 C++11: 使用 lambda 创建模板类 的 对象
C++ 中 lambda 可以直接传递给模板函数如 std::sort, 但无法传给模板类如 std::map,但是,使用一点小技巧,可以使用 lambda 创建模板类的对象,省了很多麻烦的 coding。这里给出一个示例:#include #include templatestd::map make_map(Compare comp) { return std::map(co
2012-03-09 11:46:46 2988
C++11: 使用 lambda 创建模板类 的 对象
C++ 中 lambda 可以直接传递给模板函数如 std::sort, 但无法传给模板类如 std::map,但是,使用一点小技巧,可以使用 lambda 创建模板类的对象,省了很多麻烦的 coding。这里给出一个示例:#include <stdio.h>#include <map>template<class Key, class Value, cla...
2012-03-09 11:46:00 823
原创 Recursive Lambda in C++
C++ 标准委员会真是太死板了,既然给 C++ 增加了 lambda,就真的按部就班地套用 lambda 的标准定义,也不加个 lambda的自引用机制。找了半天,除了那些学院派的足以把99%的人搞晕的 Fix Point + Y combinator,一个最实用的解决方案就是把 lambda bind 到 std::function.我那段需要 recursive lambda 的代码:
2012-03-05 18:43:21 1673 1
Recursive Lambda in C++
C++ 标准委员会真是太死板了,既然给 C++ 增加了 lambda,就真的按部就班地套用 lambda 的标准定义,也不加个 lambda的自引用机制。找了半天,除了那些学院派的足以把99%的人搞晕的 Fix Point + Y combinator,一个最实用的解决方案就是把 lambda bind 到 std::function<...>.我那段需要 recursive la...
2012-03-05 18:43:00 147
febird C++ 库(附带所有源码)
2009-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人