为什么使用Mesos代码比遗产更喜欢模板
why mesos code prefer template than heritage?
https://github.com/apache/mesos/blob/master/master/include/mesos/module.hpp#l56
MESOS模块都源自struct模块基碱,当创建不同的模块实例时,它们会使用模板。我对此感到好奇,为什么他们比遗产更喜欢模板?这是因为运行时间速度吗?
我还注意到,C 中的许多开源项目更喜欢使用大量模板,这些模板很难读取和理解,为什么?
似乎有一些一般性讨论可能会对以后在这里的人有帮助:
我什么时候应该使用模板而不是继承,反之亦然?
何时使用模板与继承
http://www.gotw.ca/publications/mill06.htm
http://people.cs.uchicago.edu/~jacobm/pubs/templates.html
模板比继承更快,因为它选择了在编译时而不是在运行时调用的正确函数。
他们也具有非常相似的功能,既支持界面和多态性。
相关文章:
- 如果条件不相关,我应该更喜欢两个 if 语句而不是 if-else 语句吗?
- 为什么 C++ 程序员更喜欢前缀 ++,而 Java 程序员更喜欢后缀 ++?
- 在C++ Lambda 表达式中,为什么人们更喜欢按值捕获而不是作为参数传递?
- 如果可能的话,C++总是更喜欢右值引用转换运算符而不是常量左值引用吗?
- 为什么斯科特·迈耶斯(Scott Meyers)建议更喜欢"迭代器"而不是"const_i
- 在实现文件中,我们应该更喜欢"using namespace"指令还是将实现包装在命名空间 { } 中?
- 为什么 clang++ 更喜欢 adcx 而不是 adc
- 如何让编译器在C++中更喜欢常量方法重载?
- 为什么重载解析更喜欢不受约束的模板函数而不是更具体的模板函数?
- 使用LLVM在代码生成期间,更喜欢LLVM :: StringMap或STD :: MAP
- 我应该更喜欢在函数中的常数:constexpr const或enum
- 如何更喜欢由AddFontMemresourceex加载的字体而不是系统
- 明智的选择是更喜欢lambdas功能对象
- 有什么理由更喜欢从 IDE 中运行应用程序而不是运行独立的可执行文件?
- 为什么使用Mesos代码比遗产更喜欢模板
- Curly Braces构造函数更喜欢initializer_list而不是更好的匹配.为什么
- 非常量指针更喜欢常量 T&重载而不是常量 T*
- TensorFlow用户应该更喜欢SavedModel而不是Checkpoint或GraphDef吗?
- 我应该更喜欢 Rcpp::NumericVector 而不是 std::vector 吗?
- 为什么 adl 更喜欢 'boost::range_detail::operator|' 而不是本地的 'operator|'?