Также на programers.stackexchange.com:
Я понимаю, что концепции STL должны существовать, и было бы глупо называть их "классами" или "интерфейсами", когда на самом деле они являются только документально подтвержденными (человеческими) концепциями и не могут быть переведены на код С++ на время, но когда им предоставляется возможность расширить язык для размещения концепций, почему они просто не изменяли возможности классов и/или вводили интерфейсы?
Разве это не очень похоже на интерфейс (100% абстрактный класс без данных)? Посмотрев на это, мне кажется, что интерфейсов не хватает поддержки аксиом, но, возможно, аксиомы могут быть введены в интерфейсы С++ (учитывая гипотетическое принятие интерфейсов на С++ для принятия концепций), не могли ли они? Я думаю, что даже автоматические концепции могут быть легко добавлены в такой интерфейс С++ (автоматический интерфейс LessThanComparable, любой?).
Не является ли понятие concept_map очень похожим на шаблон адаптера? Если все методы являются встроенными, адаптер по существу не существует вне времени компиляции; компилятор просто заменяет вызовы на интерфейс с помощью встроенных версий, вызывая целевой объект непосредственно во время выполнения.
Я слышал о том, что называется статическим объектно-ориентированным программированием, что по сути означает эффективное повторное использование концепций объектной ориентации в общем программировании, что позволяет использовать большую часть мощности ООП без накладных расходов на выполнение. Почему еще не рассматривалась эта идея?
Надеюсь, это достаточно ясно. Я могу переписать это, если вы думаете, что я не был; просто дайте мне знать.