100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C++ Primer 5th笔记(chap 16 模板和泛型编程)函数指针和实参推断

C++ Primer 5th笔记(chap 16 模板和泛型编程)函数指针和实参推断

时间:2023-06-13 06:07:57

相关推荐

C++ Primer 5th笔记(chap 16 模板和泛型编程)函数指针和实参推断

1. 当用一个函数模板初始化一个函数指针或为一个函数指针赋值时, 编译器使用指针的类型来推断模板实参

template ctypename T> int compare (const T &, const T& );// pfl 指向实例 int compare (const int &, const int & )int (*pf1) (const int&, const int& ) = compare;

1.1 如果不能从函数指针类型确定模板实参, 则产生错误:

/ / func 的重栽版本; 每个版本接受一个不同的函数指针类型void func (int ( * ) (const strings, const strings ) );void func (int (*) (const int &, const int & ) );func (compare); / / 错误: 使用 compare 的哪个实例?

1.2 解决方法: 通过使用显式模板实参来消除 func 调用的歧义

如下表达式调用的 func 版本接受一个函数指针, 该指针指向的函数接受两个 const int &参数

// 正确: 显式指出实例化哪个 compare 版本func (compare<int>); // 传递 compare (const int&, const int&)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。