同样在programmers.stackexchange.com 上:
我知道 STL 概念必须存在,将它们称为“类”或“接口”是愚蠢的,而实际上它们只是记录(人类)概念并且当时无法翻译成 C++ 代码,但是当有机会扩展语言以适应概念时,他们为什么不简单地修改类的功能和/或引入接口?
一个概念不是很类似于接口(100% 没有数据的抽象类)吗?通过观察,在我看来,接口只缺乏对公理的支持,但也许公理可以被引入 C++ 的接口中(考虑在 C++ 中假设采用接口来接管概念),不是吗?我认为即使是汽车概念也可以很容易地添加到这样的 C++ 接口中(汽车接口 LessThanComparable,有人吗?)。
一个concept_map 不是和Adapter 模式很相似吗?如果所有方法都是内联的,则适配器在编译时间之后基本上不存在;编译器只是用内联版本替换对接口的调用,在运行时直接调用目标对象。
我听说过一种叫做静态面向对象编程的东西,它本质上意味着在通用编程中有效地重用面向对象的概念,从而允许使用 OOP 的大部分功能而不会产生执行开销。为什么没有进一步考虑这个想法?
我希望这足够清楚。如果您认为我不是,我可以重写它;让我知道。