jjzjj

c++ - Concepts lite是否会改变CRTP实现静态多态的需求?

自从几年前我发现了CRTP以来,我在很多地方都使用它来为非常密集的面向计算的代码实现编译时多态性。当一个人关心运行时的通用性和最大性能时,以通用方式将成员函数“注入(inject)”到类中是很棒的。我在conceptslite上阅读/观看了几件事这将是(我希望)下一个C++标准的一部分。以更抽象和通用的方式设计功能绝对很棒,避免了我目前使用的SFINAE/std::enable_if的糟糕行。我还没有测试过实现概念的g++分支来玩弄它们,并以一种新的方式研究我喜欢的元编程方法。但也许你们中的一些人有。我的第一个想法是概念不会解决静态多态性的问题,但由于这类事情可能严重依赖技巧,我可能是

协议(protocol)和泛型类型中的 Swift 类型别名

我有一个协议(protocol),它有一个类型别名:protocolFooable{typealiasT:EquatablefuncmakeFoo()->T}我希望所有符合它的类型都将从makeFoo返回Equatable值。现在我想做一个数组扩展,它存储Fooable值:extensionArraywhereElement:Fooable{funcarrayFoo(array:Array,transform:(Element,[F])->S)->[S]{我希望给定数组A,其中包含Fooable元素和数组B,其中包含Fooable元素,我可以制作:a.arrayFoo(b,{...})