C++ "Concepts"与ObjectiveC "protocols"和Java "Interfaces"相同吗?

Are C++ "Concepts" same as ObjectiveC "protocols" and Java "Interfaces"?

本文关键字:Interfaces Java Concepts ObjectiveC protocols C++      更新时间:2023-10-16

在哪些方面c++ "概念"比ObjC协议和Java接口更好或更差?

首先这个答案比我的好:概念和接口有什么不同?

不管怎样,我在检查dup之前的原文:

这有点像问一块面包比一艘快艇好还是差。

c++"概念"适用于泛型函数和类(模板)中使用的类型参数的约束。

协议和接口指定了采用/实现类(泛型或其他)必须实现的方法。

c++已经有了类似协议和接口的东西,它们是由纯虚函数组成的类:

https://en.wikipedia.org/wiki/Virtual_function Abstract_classes_and_pure_virtual_functions

我可以看到混乱的根源;在最抽象的层面上,概念、接口和协议都必须在避免实现的同时指定行为;但是它们在语言中使用的地方是根本不同的,所以你不能做一个真正的比较。

还有,你的问题需要重写,这样它就有了一个真正的答案,而不是评论或挥手或放牛或养羊,不管我在做什么。

同样,概念还处于相当早期的阶段,仅处于c++标准的建议阶段:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4361.pdf

"现在这只是一个概念,但我想我可以得到钱把它变成一个概念,然后把它变成一个想法。"——Annie Hall