对于具有许多大型和复杂模板实例化的库,在我看来,决定是否使用概念的主要考虑因素之一是构建输出的大小是否较小。对于SFINAE,我的理解是以下代码将导致模板实例化std::is_function<bar>和std::enable_if<true, bool>包含在构建输出中,从而增加其大小(尽管在本例中略有增加f) // do some stuff with f{
我多次听说,C#中的泛型不如C++中的模板强大。但我没有听到任何赞成(或反对)这一点的论据。如果是的话,它真的是这样吗?最近,我遇到了一个奇怪的特性:如果SomeClassChild是类SomeClass的后代,那么List<SomeClassChild>不能转换为List<SomeClass>,而SomeClassChild以下代码还将导致错误:
List<SomeClass> lst = new