模板重载决议费用为

时间:2017-10-31 03:42:24

标签: c++ templates

我正在观看这个特别的https://www.youtube.com/watch?v=NPWQ7xKfIHQ&t=836s CppCon关于优化模板编译时间的讨论。他在这里给出了以下例子

    template <typename Type, std::enable_if_t = is_list<Type>>
    struct pm
    {
    static auto read(Type& t) {....}
    static auto write(Type const& t) {...}
    };

并说由于enable_if_t,这将具有线性模板重载解决时间复杂度。我不太明白在这种情况下如何发生模板重载解析。 AFAIK编译器将首先在所有已定义的模板中替换类型T。这意味着要考虑两种可能性。一个有列表,一个没有列表。之后,它有一个特定的模板实例,它正在寻找,应该只是O(1)查找。你能否纠正我在思考过程中缺少的东西?

0 个答案:

没有答案