跳转至内容

更多 C++ 习语/Enable if

来自维基教科书,为开放世界提供开放书籍

有时,类模板的成员函数(可能是重载集中的一个)只对某些模板参数有意义。enable_if 习语使用 SFINAE 在重载解析之前消除不需要的函数。

其他名称

[编辑 | 编辑源代码]

解决方案和示例代码

[编辑 | 编辑源代码]

已知用途

[编辑 | 编辑源代码]

enable_if 的一个用途是在实现标准容器的 (size_type, value_type) 构造函数上的要求,例如,如果 value_type 是一个整型类型,则该构造函数具有特殊行为。存在更原始的解决方案,但在这种情况下,enable_if 很优雅。

[编辑 | 编辑源代码]

SFINAE,元函数。

参考文献

[编辑 | 编辑源代码]
华夏公益教科书