这个列表收集了 C++ 语言的一些晦涩(Obscure)特性,是我经年累月研究这门语言的各个方面收集起来的。C++非常庞大,我总是能学到一些新知识。即使你对C++已了如指掌,也希望你能从列表中学到一些东西。下面列举的特性,根据晦涩程度由浅入深进行排序。1. 方括号的真正含义2. 最烦人的解析3.替...【阅读全文】
一、创建一个cmake工程Qt creator:file->New File or Porject...>>Non-Qt Project>>Plain C Project//或者//Plain C++ ProjectCMakeLists.txt:cmake_minimum_required(VERSION 3.7.1)project(hello-world)set(SOURCE_FILES main.c)message...【阅读全文】
SFINAE是Substitution Failure Is Not An Error的缩写,即利用编译器的模板匹配失败来实现某些功能。C++中模板匹配遵循尽可能精确的原则,当最精确的模板匹配失败时会再尝试候选模板,因此利用同名但模板参数不同的多个模板函数可以达到编译器检查或判断的目的。比如,对于多个module_xx类,需要检查其是否存在get_...【阅读全文】