https://github.com/apache/mesos/blob/master/include/mesos/module.hpp#L56
Все модули mesos являются производными от struct ModuleBase, и при создании разных экземпляров модулей они используют шаблон.
Мне интересно, почему они предпочитают шаблон, а не наследие? Это из-за скорости бега?
Я также заметил, что так много проектов с открытым исходным кодом в C ++ предпочитают использовать множество шаблонов, из-за которых код трудно читать и понимать, почему?
Кажется, что есть некоторые общие обсуждения, возможно, помочь кому-то, кто здесь позже:
Когда я должен использовать шаблоны вместо наследования, и наоборот?
Когда использовать шаблон против наследования
http://www.gotw.ca/publications/mill06.htm
http://people.cs.uchicago.edu/~jacobm/pubs/templates.html
Шаблон быстрее, чем наследование, так как он выбирает правильную функцию для вызова во время компиляции, а не во время выполнения.
также они имеют очень похожую функцию, что они оба поддерживают интерфейсы и полиморфизм.
Других решений пока нет …