其他构造函数通过带有默认值的委派构造来调用这个目标构造函数
千万小心环形委派, 会导致编译错误
委派构造函数使得构造函数的模板编程也成为一种可能, 通过让模板构造函数成为委派构造函数, 我们可以很容易地接受多种不同类型的参数进行相同的底层初始化...在C++11的标准中提出SFINEA的动机是当年C++98中并没有对这个规则进行标准化的描述, 因此各个编译器对于函数模板的匹配规则都是混乱的, 因此新标准提出SFINEA来使程序员能按照自己的想象来理解编译器并令其能精确匹配我们所需要的函数...可行的保留并计算匹配的精确度, 选择最佳匹配的候选函数作为结果
如果存在两个相同匹配等级的参数列, 优先保留普通函数
完全找不到匹配的函数或者产生二义性时, 引发error
这个尝试进行参数替换的过程中编译器只发生...failure, 不会引发error, 直到完成所有尝试
基础来说, SFINEA使得模板实例化的过程在各个编译器上都能表现出一样的效果, 且避免在不相关模板可见时实例化出错误的程序....SFINEA的原因int对f1的尝试不算做实例化的error, 而属于匹配过程中的一次failure
f(10);
}
基于对这个匹配过程的标准化描述, 我们可以无关编译器地对模板匹配的可行性进行判断