知识点

避免将「unsigned int」和「int」放在布尔表达式中作比较

这个标题不够犀利,不少人看到第一反应肯定是——“这我知道啊”。但是很多人肯定写过如下的代码
#include<iostream>#include<string>#include<cstring>using namespace std;int main(){string s = "abcde";for(int i = 0; i < s.size(); ++i) {s[i] = toupper(s[i]);}cout<<s<<endl;}
这个例子是将所有的小写字母变成大写字母,很正常。但是这种编程习惯有个隐藏的风险,再来看下面这段代码,这段代码...阅读全文

C++中的「模板元编程」——Template Metaprogramming(TMP)

之前在coolshell看到一遍文章类型的本质和函数式实现,讲怎么使用函数式编程来实现一个栈,十分有意思。今天在看《Effective C++》的时候也看到了一种类似的编程方法,这本书确实是让人学到太多了,必须点个赞,有些东西虽然基础,但是没看过是不知道可以这样用的。

以下的内容主要就是说其中的条款48——“认识template元编程”。最具体的讲解还是参考原书啦,这里只是提一下。

模板元编程最主要的好处,就是能够将运行期执行的任...

阅读全文
第 1 页,共 1 页1