这个问题可能经常会被问到吧,所以还是了解一下,在此做点功课和笔记。笔者见识浅薄,大多摘自网络上他人的总结,若有纰漏,敬请斧正!
一切以c++官方主页为准。
c++版本发布历史:
1.c++17
参考1:c++17特性
这个比较偏,主要包括auto关键字和varient
参考2:c++17特性:标准库
包括 1)std::function 2)array 3) 元组tuple:很少用 4) c++17直接使用std::size()函数获得数组的大小 5)string.data()可以像c_str()一样返回字符数组const char 6)Int与double之间的转换
参考3:c++17新特性
如下,很少能用到
记录一个基本的lambda表达式:
template <typename I>
constexpr auto func(I i) {
//use a lambda in constexpr context
return [i](auto j){ return i + j; };
}
小结:
感觉c++17的新特性离我太远了,不太能用上。
2.c++14
参考1:
auto adder = [](auto op1, auto op2){ return op1 + op2; };
// 使用
double p1=0.15,p2=10;
auto res = adder(p1,p2);
参考2:c++11和14特性总结