SFINAE : Substitution Failure Is Not An Error (替换失败不是错误)。
知乎 - C++模板进阶指南:SFINAE 推荐阅读。
SFINAE最主要的作用,是保证编译器在泛型函数、偏特化、及一般重载函数中遴选函数原型的候选列表时不被打断。除此之外,它还有一个很重要的元编程作用就是实现部分的编译期自省和反射。
在函数模板的重载决议中应用此规则:当将模板形参替换为显式指定的类型或推导的类型失败时,从重载集中丢弃这个特化,而非导致编译失败。此特性被用于模板元编程。
SFINAE原则在C++中扮演关键角色,确保编译器在泛型函数选择时不引发错误。它用于筛选模板函数候选,并实现编译期自省。了解这一概念对于深入理解C++模板元编程至关重要。
1284

被折叠的 条评论
为什么被折叠?



