会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
程序员的自我修养
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
···
35
下一页
2018年11月10日
C++ lambda表达式总结
摘要: 一个lambda表达式用于创建闭包。lambda表达式与任何函数类似,具有返回类型、参数列表和函数体。与函数不同的是,lambda能定义在函数内部。lambda表达式具有如下形式 capture list,捕获列表,是一个lambda所在函数中定义的局部变量的列表。lambda函数体中可以使用这些局
阅读全文
posted @ 2018-11-10 15:58 gqtc
阅读(10753)
评论(0)
推荐(0)
2018年11月9日
Effective Modern C++:06lambda表达式
摘要: lambda表达式实际上是语法糖,任何lambda表达式能做到的,手动都能做到,无非是多打几个字。但是lambda作为一种创建函数对象的手段,实在太过方便,自从有了lambda表达式,使用复杂谓词来调用STL中的”_if”族算法(std::find_if,std::remove_if等)变得非常方便
阅读全文
posted @ 2018-11-09 20:22 gqtc
阅读(735)
评论(0)
推荐(0)
2018年11月6日
C++模板进阶指南:SFINAE
摘要: C++模板进阶指南:SFINAE 空明流转(https://zhuanlan.zhihu.com/p/21314708) SFINAE可以说是C++模板进阶的门槛之一,如果选择一个论题来测试对C++模板机制的熟悉程度,那么在我这里,首选就应当是SFINAE机制。 我们不用纠结这个词的发音,它来自于
阅读全文
posted @ 2018-11-06 08:29 gqtc
阅读(2055)
评论(0)
推荐(1)
SFINAE and enable_if
摘要: There's an interesting issue one has to consider when mixing function overloading with templates in C++. The problem with templates is that they are u
阅读全文
posted @ 2018-11-06 08:25 gqtc
阅读(816)
评论(0)
推荐(0)
2018年10月31日
Effective Modern C++:05右值引用、移动语义和完美转发
摘要: 移动语义使得编译器得以使用成本较低的移动操作,来代替成本较高的复制操作;完美转发使得人们可以撰写接收任意实参的函数模板,并将其转发到目标函数,目标函数会接收到与转发函数所接收到的完全相同的实参。右值引用是将这两个不相关的语言特性连接起来的底层语言机制,正是它使得移动语义和完美转发成了可能。 23:理
阅读全文
posted @ 2018-10-31 08:49 gqtc
阅读(1403)
评论(0)
推荐(0)
2018年10月22日
C++左值和右值
摘要: https://en.cppreference.com/w/cpp/language/value_category C++中的每个表达式都有两种独立的特性:类型(type)和值分类(value category)。每个表达式都属于三大value category之一:prvalue,xvalue和l
阅读全文
posted @ 2018-10-22 08:39 gqtc
阅读(4224)
评论(0)
推荐(0)
Effective Modern C++:04智能指针
摘要: 裸指针有着诸多缺点:裸指针的声明中看不出它指向的是单个对象还是数组;裸指针的声明中也无法看出使用完它指向的对象后是否需要删除,也就是声明中看不出裸指针是否拥有其指向的对象;即使知道要析构裸指针指向的对象,也不可能知道如何析构才是恰当的;即使确知要使用delete来析构,也无法判定到底使用delete
阅读全文
posted @ 2018-10-22 08:11 gqtc
阅读(859)
评论(0)
推荐(0)
2018年10月13日
Effective Modern C++:03转向现代C++
摘要: 07:在创建对象时注意区分()和{} 自C++11以来,指定初始化值的的方式包括使用小括号,等号,以及大括号: C++将后两种使用大括号的两种方式视为相同的方式。 C++11之前,单纯的直接初始化和复制初始化方式,在某些情况下无法进行想要的初始化。比如没有办法在初始化STL容器时直接指定所持有的值。
阅读全文
posted @ 2018-10-13 22:27 gqtc
阅读(846)
评论(0)
推荐(0)
2018年9月30日
Effective Modern C++:02auto
摘要: 05:优先使用auto,而非显示类型声明 显示类型声明有下面一些缺点: 另外,如果想要使用闭包的类型来声明变量,但是闭包的类型只有编译器知道。 有了auto之后,上面这些缺点都可以解决: 使用auto声明变量,必须初始化。 或许你认为没必要使用auto来声明变量持有闭包,使用std::functio
阅读全文
posted @ 2018-09-30 21:54 gqtc
阅读(206)
评论(0)
推荐(0)
2018年9月29日
Effective Modern C++:01类型推导
摘要: C++的官方钦定版本,都是以ISO标准被接受的年份命名,分别是C++98,C++03,C++11,C++14,C++17,C++20等。C++11及其后续版本统称为Modern C++。 C++11之前,仅有一套类型推导规则,也就是函数模板的推导。C++11之后,又增加了了auto和decltype
阅读全文
posted @ 2018-09-29 08:45 gqtc
阅读(757)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
···
35
下一页
公告