Mar*_*tin 4 c++ function-templates
任何人都可以解释为什么在第三版C++编程语言的第13章中,Stroustrup说明了函数模板的默认参数,尽管C++(pre C++ 11)不支持它们?这是Stroustrup在第13.4.1节中给出的示例:
明确指定每个调用的比较是繁琐的.幸运的是,很容易选择默认值,因此只需要明确指定不常见的比较条件.这可以通过重载来实现:
Run Code Online (Sandbox Code Playgroud)template<class T, class C> int compare(const String<T>& str1, const String<T>& str2); // compare using C template<class T> int compare(const String<T>& str1, const String<T>& str2); // compare using Cmp<T>或者,我们可以提供普通约定作为默认模板参数:
Run Code Online (Sandbox Code Playgroud)template <class T, class C = Cmp<T> > int compare(const String<T>& str1, const String<T>& str2)
这是编译器错误:
错误:默认模板参数可能不在函数模板中使用
| 归档时间: |
|
| 查看次数: |
612 次 |
| 最近记录: |