摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 矛盾的是,我们很容易就能创造出一个和std::shared_ptr类似的智能指针,但是,它们不参加被指向资源的共享所有权管理。换句话说,这是一个行为像std:: 阅读全文
posted @ 2016-01-14 16:02 boydfd 阅读(2205) 评论(1) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 使用带垃圾回收机制语言的程序员指出并嘲笑C++程序员需要遭受防止资源泄漏的痛苦。“多么原始啊”他们嘲笑道,“20世纪60年代的Lisp留下的备忘录你还不记得了吗 阅读全文
posted @ 2016-01-13 14:54 boydfd 阅读(2048) 评论(1) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 当你需要一个智能指针的时候,std::unique_ptr通常是最接近你需求的那一个。默认情况下,这么假设是很合理的:std::unique_ptr和原始指针的 阅读全文
posted @ 2015-12-17 17:17 boydfd 阅读(2066) 评论(2) 推荐(2) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" C++的官方说法中,特殊成员函数是C++愿意去主动生成的。C++98有4个这样的函数:默认构造函数,析构函数,拷贝构造函数,拷贝operator=。当然,这里有 阅读全文
posted @ 2015-12-16 12:12 boydfd 阅读(1570) 评论(0) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 如果我们在数学领域里工作,我们可能会发现用一个类来表示多项式会很方便。在这个类中,如果有一个函数能计算多选式的根(也就是,多项式等于0时,各个未知量的值)将变得 阅读全文
posted @ 2015-12-13 15:31 boydfd 阅读(2250) 评论(4) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 如果说C++11中有什么新东西能拿“最佳困惑奖”的话,那肯定是constexpr了。当把它用在对象上时,它本质上是const的加强版,但是把它用在函数上时,它将 阅读全文
posted @ 2015-12-12 15:33 boydfd 阅读(4261) 评论(1) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 在C++98中,异常规范(exception specifications)是一个不稳定因素。你必须总结出一个函数可能会抛出的异常类型,所以如果函数的实现被修改 阅读全文
posted @ 2015-12-10 14:27 boydfd 阅读(2133) 评论(6) 推荐(1) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" STL中的const_iterator等价于pointers to const(指向const值的指针)。它们指向的值不能被修改。使用const的标准做法是,每 阅读全文
posted @ 2015-12-05 09:21 boydfd 阅读(1750) 评论(1) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" C++中的面向对象编程总是围绕着类,继承,以及虚函数。这个世界中,最基础的概念就是,对于一个虚函数,用派生类中的实现来重写在基类中的实现。但是,这是令人沮丧的, 阅读全文
posted @ 2015-12-04 07:34 boydfd 阅读(3914) 评论(0) 推荐(2) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 如果你为其他开发者提供代码,并且你想阻止他们调用一个特定的函数,你通常不会声明这个函数。函数不声明,函数就不会被调用。太简单了!但是有时候C++会帮你声明函数, 阅读全文
posted @ 2015-12-02 16:14 boydfd 阅读(988) 评论(3) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 一般情况下,在花括号中声明一个name(包括变量名,函数名),这个name的可见性会被限制在花括号的作用域内。对于在C++98风格的enum中声明的enum成员 阅读全文
posted @ 2015-11-30 17:22 boydfd 阅读(1736) 评论(0) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 我确信我们都同意使用STL容器是一个好主意,并且我希望在 Item 18 中能让你相信使用 std::unique_ptr 也是一个好主意,但是我猜想,我们中没 阅读全文
posted @ 2015-11-25 18:38 boydfd 阅读(2253) 评论(1) 推荐(1) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 先让我们看一些概念:字面上的 0 是一个 int ,不是一个指针。如果C++发现 0 在上下文中只能被用作指针,它会勉强把 0 解释为一个null指针,但这只是 阅读全文
posted @ 2015-11-23 18:51 boydfd 阅读(1230) 评论(6) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 从不同的角度来看,在C++11中,对象初始化拥有多种语法选择,这体现了语法丰富造成的尴尬或者烂摊子。一般情况下,初始化的值可以用圆括号,等号,花括号来确定: i 阅读全文
posted @ 2015-11-20 17:22 boydfd 阅读(6330) 评论(7) 推荐(3) 编辑
摘要: 本文翻译自《effective modern C++》,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" Item 5解释了比起显式指定类型,使用auto来声明变量提供了大量技术上的优点,但是有时候auto的类型推导出zigs(这个类型),但是你想要的是zag( 阅读全文
posted @ 2015-11-17 06:54 boydfd 阅读(1241) 评论(2) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 啊,简单愉快的代码: int x; 等等,讨厌!我忘了初始化x,所以它的值是不确定的。可能,它可能被初始化成了0,这取决于你的编译环境。哎。 不要紧,让我们简单 阅读全文
posted @ 2015-11-15 08:19 boydfd 阅读(1296) 评论(2) 推荐(1) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 对于推导类型结果的查看,根据不同的软件开发阶段,你想知道的信息的不同,可以选择不同的工具。我们将探讨三种可能性:在你编辑代码时获得类型推导信息,在编译期获得信息 阅读全文
posted @ 2015-11-14 08:11 boydfd 阅读(1235) 评论(3) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" decltype是一个奇怪的东西。给出一个名字或者一个表达式,decltype可以告诉你名字或表达式的类型。大多情况下,他告诉你的就是确实你想的那样。但是偶尔, 阅读全文
posted @ 2015-11-13 12:11 boydfd 阅读(1569) 评论(2) 推荐(1) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 如果你已经读过 item 1 的模板类型推导,你已经知道大部分关于auto类型推导的知识了,因为,除了一种奇怪的情况外,auto类型推导和template类型推 阅读全文
posted @ 2015-11-12 16:14 boydfd 阅读(1594) 评论(3) 推荐(0) 编辑
摘要: 本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 一些用户对复杂的系统会忽略它怎么工作,怎么设计的,但是很高兴去知道它完成的一些事。通过这样的方式,c++中的template类型的推导取得了巨大的成功。数以万计的程序员曾传过参数给temp 阅读全文
posted @ 2015-11-09 16:31 boydfd 阅读(3434) 评论(7) 推荐(1) 编辑