Post c++ sfinae

一个关于 private member function detect 的 SFINAE 模板

问题的开始

问题起源于,我要搞一个模板,来检查一个类,是不是有一个特定的回调接口 OnAlarm()。我显然希望在我的模板类里面,直接调用这个 OnAlarm 回调的。但是问题,就这么出现了。我需要一个模板,来检查一个传给构造函数的指针指向的类型,是不是有我需要的 OnAlarm 方法。如果没有的话,我需要使用另一套回调的机制。 问题就出在了这个检查上面。

READ MORE +
Post c++ c++11 c++17 standard

User-defined conversion and Copy elision

问题的开始

问题的开始是同事聊到了我们笔试题的一个问题,是说下面这个代码其实在编译的时候是有问题的。

READ MORE +

VIM and Latex

起源

起源是在群里看到了有人分享的关于一个人用 vimlatex 的文章,但是它的做法是用了一个 vimtex 的独立插件。 我是个 language server 的狂热使用者,所以我就在找一个用 language server 的处理方案。回忆起来另一次在另一个群里看到的,一个叫做 texlab 的项目,就在 vim 里搞个配合。

READ MORE +
c++ crtp virtual Post

Compare Between CRTP and Virtual

我们平时都会使用虚函数来实现 C++ 里的运行时的多态,但是虚函数会带来很多性能上面的问题:

  1. 虚函数的调用需要额外的寻址
  2. 虚函数不能被 inline,当使用比较小的虚函数的时候会带来很严重的性能负担
  3. 需要在每个对象中维护一个额外的虚函数表

但是在有些情况下,我们就可以用一些静态的类型分发策略来带来一些性能上面的好处。

READ MORE +

Interface in C++

Interface In C++

问题提出

我记得我不止一次提到说,我更喜欢 golang 的泛型设计。一个优秀的泛型系统,我希望是来表示一个方法可以接受什么。应该是一个类似于 concept 的概念。我们都知道,在 C++ 里面,我们更多的使用虚函数来实现这个功能,就像下面这样:

READ MORE +

Previous | 2 / 8 | Next