完美转发不完美

C++的完美转发并不完美,这是因为对于如下例子代码

2024/11/16
阅读更多

闲散颂

正如和我同时代的大多数人一样,我是在这样的谚语中长大的:“游手好闲,魔鬼也嫌。”我是个乖孩子,人们说什么,我就信什么。这种道德信条,让我勤奋工作至今。但是,尽管我的道德信条仍控制着我的行动,我的看法却已经历了一场革命。我认为在这个世界上,人们做的工作实在是过多了。工作即美德的观念,对人们造成了极大的损害。现代工业国家需要宣扬一些与过去全然不同的信念。大家都知道这个故事:到那不勒斯的游人看到十二个叫花子躺着晒太阳(事情发生在墨索里尼时代之前),要给其中最懒的一个一里拉,有十一个跳起来说自己最懒,该给自己,他却把钱给了第十二个。这个游人是对的。但是,在不欣赏地中海阳光的国家里,想要闲散就困难多了,得要大规模的宣传来开新风气。我希望,在读了下面的文字后,基督教青年会的领袖们能掀起一场运动,劝导好青年们闲散一些。这样的话,我也算没白活了。

2024/11/16
阅读更多

adapting c++20 ranges algorithms for most metaprogramming

daisy在cppnow 2023的演讲中展示了可极大简化模板元算法的技巧。 以排序为例 基本思路是 将type_list中的每个Type映射到他们的index, 然后对index数组做sort,结果为sorted_indices, 最终type_list中各个元素按照在sorted_indices新位置重新安放,返回结果type_list.

2024/1/22
阅读更多

Reproducible github Developer Environments

我們以 github上 jiayuehua/CMakeVcpkgManifest 代码库 爲例,说明如何在github上建立可重复的开发环境。

2023/8/15
阅读更多

使用mpmcpipeline和jthread实现软流水

多个Jthread线程,每个线程完成mpmcpipeline中一个stage的处理,实现软件流水。第一个stage收到sentinal value时,所有work线程都退出。

2023/5/22
阅读更多

在其它线程周期回调函数

不同于FunctionScheduler ,ThreadedRepeatingFunctionRunner是在另一线程周期回调函数,例子

2023/5/21
阅读更多

在当前线程周期回调函数

FunctionScheduler 可在当前线程周期回调函数

2023/5/21
阅读更多

for_each

C++11引入了range for loop,可是range for loop只能拿到向前range的元素,而没法取得循环的当前下标。

2023/5/20
阅读更多

cpo和tag_invoke

customization point object(cpo)和tag_invoke由eric niebler提出,在ranges和executor中有很多应用。 cpo可用于对库中的一些仿函数进行定制,而tag_invoke用于实现cpo,用于用户的类区分对于不同库的定制。

2023/5/18
阅读更多

transparent,为关联容器增加查找成员

folly::transparent 模板类可以用比较器实例化,从而支持异型查找:

2023/5/18
阅读更多