摘要:C++在编程语言排行榜里基本上一直在前三,可以说是经久不衰。可能很多人没有意识到C++无处不在,因为大多数 C++ 程序是在基础层,藏在应用的背后,对用户来说是不可见的。C++通常不开发web 应用程序(Java、Ruby on Rails、PHP等在这个领域中更合适)。但是C++的经常出现在诸如开
阅读全文
摘要:先撸一个简单版本 C++语言的特点就是少了一个符号都会造成非常不同的结果。以下代码有个很致命的错误,不知道能否一眼看出来。 // ranges_iterators.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include
阅读全文
摘要:static_cast caution It is likely to lead unexpected behavior and maybe dangerous to invoke static_cast on wrong C++ object. Below example demostrates
阅读全文
摘要:在特定的场景中,特殊定制数据结构能够得到更加好的性能且更节约内存。
阅读全文
摘要:多线程与同步 多线程并行执行能够大大提升程序运行效率,但是也要注意随之带来的线程间同步问题,避免竞态条件(“Race Condition”)引起的难以发现的bug。这篇总结一下线程的创建和销毁、等待和恢复、加锁和解锁、锁的类型以及在某些情况下可以替代锁的原子操作。 启动线程 创建std::threa
阅读全文
摘要:C++编译器选择是否自动生成代码的背后逻辑 编译器会为class和struct(实际上两者在C++中是一回事)自动生成构造函数、赋值操作符函数和析构函数。如果不是这样,那么开发者就必须自己写一些枯燥冗余的代码。然而编译器并不总是生成这些默认代码,当它觉得它无法生成正确的代码时,它就会拒绝生成默认代码
阅读全文
摘要:在8字节对齐的情况下指针的低三位都是0,在某些情况下我们需要维持跟指针对应的额外信息,例如标志位,但是又不想为此创建一个结构体,那就可以利用指针的低三位来存储额外信息。
阅读全文