- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 C++17(6) : lambda扩展
一、constexpr Lambda 自从C++17开始,如果lambda表达式符合要求的话,该表达式会隐式转换为constexpr表达式。(表达式内没有静态变量,没有虚函数,没有 try/catch语句, 没有new/delete关键字)。如下:auto squared = [](auto val) { return val*val;};//隐式转换为constexpr...
2019-05-29 14:43:36 725
原创 C++17(5) : 临时对象传递时不进行拷贝
一、临时对象 临时对象指的是没有名字的对象。 对于这样的对象不论是传递参数,还是已返回值返回时,都不会调用拷贝构造。下面这段代码在C++17是可以正常编过的。class A{public: A(const A&) = delete;};void test(A a){}A test2(){ return A{};}test(A{}...
2019-05-29 10:41:33 462
原创 C++17(4) : 聚合初始化
一、C++17中聚合的定义 1、任意数组都被称为聚合。 2、具有以下特点的类、结构体或者是共用体: -没有用户声明的构造函数或者被explict修饰的构造函数。 -没有using Base::Base()这种的构造函数。 struct Data{};struct D: public Data{ using Data:...
2019-05-19 16:30:35 2446
原创 C++17(3) : inline 变量
一、inline 回顾过去 inline 只能用于函数名字之前, 用来建议编译器将被修饰的函数在使用处展开,来解决参数入栈出栈的开销。 它提供了两个保证: 1、在所有的用到被inline 修饰的函数的源文件中,其函数的定义都是相同的。 2、被inline修饰的函数必须在每一个源文件中都有一个定义。(不论展开不展开)。二、C++17 ...
2019-05-17 21:12:15 3891 1
原创 C++17(2) : if 与 switch 在语句中的初始化
1、if 初始化//初始化作用域开始if(int i = 10; true){ std::cout << "true " << i << std::endl;}else{ std::cout << "false " << i << std::endl;}//初始化作用域结束2、swi...
2019-05-16 17:35:09 501
原创 C++17(1) : 结构化绑定(Structured Bindings)
1、结构化绑定 结构化绑定允许通过对象、结构体的成员来初始化多个变量,例如struct Mystruct{ int i = 0; std::string s = "hello";}Mystruct ms;auto [u, v] = ms;2、用处 a、通常用处 结构化绑定通常应用与接收返回结构体、类对象、数组等包含多个元素的函数返回值。例...
2019-05-16 14:27:41 1435
原创 OpenCV环境搭建(VS2013 + opencv3.4)
一、VS配置第三方库1、 .lib .dll都是什么鬼 大家使用的第三方库或者SDK时候,会发现其本质都是这三种类型的文件:a、头文件(.h),b、静态链接库文件(.lib)c、动态链接库文件(.dll)。 1)头文件(.h)。大家知道,C++一般把函数声明都放在头文件中,如果你想使用我写的函数,你就需要引入我的头文件。否则你根本就不知道函数的名字。 2)静态连接库文件(....
2018-03-30 09:52:53 5005 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人