模板参数中的“typename =”是什么意思?

2024-02-06

我在《Effective Modern C++》一书的第189页看到过这样的表达:

    template<typename T,
             typename = typename std::enable_if<condition>::type>
    explicit Person(T&& n);

我只是想知道这部分是什么”typename =“意思是。它看起来确实像是模板参数的默认参数。但是您不需要类似的东西吗?”typename some_name = ...“在默认参数中?第二个模板参数没有名称,并且我没有看到在这种情况下使用第二个模板参数。

附:当我在谷歌(或任何其他搜索引擎)上搜索答案时,等号总是被丢弃,这使得找到答案几乎不可能......


这是一个可选的模板参数,没有名称和默认值。
它用于应用enable_if健康)状况;如果不满足条件,它将产生编译器错误。

您可以对普通方法参数使用完全相同的语法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模板参数中的“typename =”是什么意思? 的相关文章

随机推荐