秋招日记(二十二)C++模板类型推导
学习记录
- 《Linux多线程服务端编程》
- 第 10 章 C++编译链接模型精要
- 《C++ Primer》
- 第 16 章 模板与泛型编程
C++ 模板类型推导
-
引子:前几天大疆笔试第一个简答题
template<typename T> void printSize(T a){ std::cout << sizeof(T) << std::endl; std::cout << sizeof(a) << std::endl; } template<typename T> void printSizeRef(T&& a){ std::cout << sizeof(T) << std::endl; std::cout << sizeof(a) << std::endl; } int main(){ int a[100] ={0}; printSize(a); printSizeRef(a); }
- 求在64位系统中的输出?
- 在64位Ubuntu服务器中,编译运行后输出的结果是:8,8,400,400,
- 也就是说:
- 第一个函数中的T和a的类型都是指针
- 第二个函数中的T和a的类型都是大小为100的int数组
-
C++模板类型推导要点:
- 按值传递给函数模板的数组类型将被推导为指针类型,原因是C语言中数组类型可以隐式类型转换为指向数组首元素的指针,C++的基础是C,所以允许这样的转换
- 在模板类型推导过程中,数组的实参在被用来初始化引用时,不会被退化为指针,此时形参的实际类型是数组的引用
嵌入式开发秋招重要信息!!!!!
对于一个机械专业的人来说,转码的最佳方向应该是嵌入式(千万不要卷互联网,像我一样😥)
大家对于嵌入式求职面经感兴趣的可以关注@Bonana52 ,这位大佬经过无数场嵌入式的面试的历练后,现在对于嵌入式的面试已经手到擒来了😎
快关注他的帖子,获取更多嵌入式求职信息吧😁