函数模板的模板参数自动推导探究
来源:互联网 发布:java默认访问修饰符 编辑:程序博客网 时间:2024/05/17 22:29
- 内置类型推导
- 自定义类型推导
- 可调用类型推导
- 省略号参数推导
- 模板的模板类参数推导
- 模板的模板函数参数推导
内置类型推导
template <typename T>void func(T value) { cout << "type:" << typeid(T).name() << endl;}int main(int argc, char* argv[]){ func(1); // 推导为 int func('a'); // 推导为 char return 0;}
自定义类型推导
class myClass {};int main(int argc, char* argv[]){ myClass classObject; func(classObject); // 推导为 myClass 类型 return 0;}
可调用类型推导
struct functor { void operator () () { cout << "functor" << endl; }};int main(int argc, char* argv[]){ auto f = [](){ cout << "lambda in function object" << endl; }; func(f); // 函数签名 func([](){ // lambda cout << "lambda" << endl; }); func(functor()); // 仿函数 return 0;}
省略号参数推导
template <typename Head, typename ... Args>void func(Head value, Args ... args) { cout << "type:" << typeid(Head).name() << endl; func(args...);}template <typename T>void func() { cout << "type:" << typeid(T).name() << endl;}int main(int argc, char* argv[]){ func(1, 2.0, 'a', "a"); return 0;}
模板的模板类参数推导
在 C11 以前函数模板是无法推导模板参数的。
template <typename T, template <typename T1, typename T2> class TClass>void func(T value, TClass<T, T> tcobject) { cout << "type:" << typeid(T).name() << endl; // output: i cout << "type:" << typeid(TClass<T, T>).name() << endl; // output: 6TClassIiiE}int main(int argc, char* argv[]){ TClass<int, int> tcObject; func(1, tcObject); return 0;}
模板的模板函数参数推导
骗你啦,没有这个东西。顶多是推导出参数为一个模板:
template <typename T, typename F>void func(T value, F func) { cout << "type:" << typeid(T).name() << endl; // output: i cout << "type:" << typeid(F).name() << endl; // output: PFvvE func();}template <typename T>void TFunc() { cout << "Template Func" << endl;}int main(int argc, char* argv[]){ func(1, TFunc<int>); return 0;}
CSDN 辣鸡 MD 编辑器,无序列表格式全丢
阅读全文
0 0
- 函数模板的模板参数自动推导探究
- 模板参数自动推导
- 模板参数自动推导
- c++模板参数自动推导
- 模板参数的推导
- 字符串参数的模板函数推导问题
- C++函数模板的参数推导
- 函数模板参数推导的两个经典应用
- C++——函数模板的参数推导
- C++——函数模板的参数推导
- 函数模板参数推导的两个经典应用
- 模板函数的参数类型不能通过表达式推导
- C++17尝鲜:类模板中的模板参数自动推导
- 模板函数中指针作为调用参数时模板参数的推导问题
- 模板模板参数推导例子
- 模板参数推导
- 模板参数 自变量推导
- 函数模板机制探究
- 【剑指offer】题目4
- C语言关键字Volatile
- JSP的静态与动态包含
- HDU 6030 Happy Necklace【矩阵快速幂】
- lualib.h详解
- 函数模板的模板参数自动推导探究
- Opencv及Kinect/OpenNI常用学习网址
- IDEA破解办法
- 扯淡的bug--redis
- The ServiceClass object does not implement the required method in the following form: OMElement sayH
- JSP的out内置对象及其常用方法
- 51自学网,各种软件自学视频的地方
- 【转载】SMARTFORM字段参数设置 解决SMARTFORM中数量、金额字段显示 等问题
- 学习资料