分类目录归档:技术谈

only for coding

近期读的处于UnderReview的一些工作

因为最近ICLR和AAAI都是允许在arxiv或者openreview的平台公开自己的工作的,自己也就看了一些貌似投往这些会的paper,把读到的都记录一下,以便出结果后可以自己针对再看看是否有更新,而且openreview上还可以看到别人的评价以及和作者的交互。ICLR的文章大概就按照香侬前几天的推送看,而AAAI的就凭arxiv了。。。话说还有好几个会出了结果一篇paper没看。。进度好慢。。。

继续阅读

近期会议的RC&QA扫读

感觉自己读论文的进度太慢了,ACL还没看几篇,EMNLP已经挂出来了一堆了。。。还是赶快读读,反正都是给自己看的,有的不太感兴趣或者觉得不太有意思的就随便写几句好了。。。每篇应该都是在一句话解决问题吧,偷个懒。。

继续阅读

C++ primer 学习笔记(第七章)

这一章看的没之前那么仔细,只是囫囵吐枣的看了一遍。

  • 构造函数的初始值有时必不可少

有时候数据成员的赋值和初始化是可以忽略区别的。但是如果成员是const或者引用的话就必须要初始化了。这是因为,如果没有在构造函数的初始值列表中显式的初始化成员,他会在构造函数体执行之前执行默认初始化。当然初始值必不可少的情况也适用于:当成员属于某种类类型而且该类没有定义默认构造函数的话。

  • 成员初始化的顺序

构造函数初始值列表只说明用于初始化成员的值,而不限定初始化的具体执行顺序,成员初始化的具体执行顺序与他们在类内出现的顺序一致。

  • 隐式的类类型转换

先看一份丑丑的code:

声明了一个接受string的构造函数,我们相当于定义了从这种类型向PP隐式转换的规则。我们调用a的sum方法,编译器用给定的string自动生成了一个PP对象,新生成的这个对象传递给了sum。但是这种类型转换只允许一步转换。所以这样写编译器就会报错了。

因为这里使用了两种类型转化:“999”到string类型的转换,string类型到PP的类型转换。当然我们如果显式声明转换就可以啦。

当然我们也可以抑制构造函数定义的隐式转换。我们可以把构造函数声明为explicit就可以了。但是只能在类内声明构造函数使用explicit关键词。而且explicit构造函数只能用于直接初始化。

对于explicit构造函数虽然我们无法隐式转换,但是显式类型强转还是可以的。