摘要: 考虑经常用的转字符串的方法: 现在有个更简洁的: 效率方面:C风格的sprintf因为没有动态内存分配,效率最高。std::to_string其次,最差的是std::stringstream。 从C++17开始,提供效率不差于sprintf, 同时类型安全更高的转换函数std::to_char 。 阅读全文
posted @ 2018-04-03 20:07 thomas76 阅读(1908) 评论(0) 推荐(0) 编辑
摘要: 不要这样使用智能指针: 原因在于表达式求值的顺序,绝非想想的那样简单。参考:https://blog.csdn.net/ox_thedarkness/article/details/613122可能是先new int, 然后调用bar(), 当bar()抛异常时,智能指针还未接管heap上的int对 阅读全文
posted @ 2018-04-03 19:17 thomas76 阅读(3006) 评论(0) 推荐(0) 编辑
摘要: 参考:http://blog.aaronballman.com/2011/07/inline-namespaces/https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.cbclx01/namespa 阅读全文
posted @ 2018-04-03 11:47 thomas76 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 参考:http://blog.aaronballman.com/2014/07/member-function-ref-qualifiers/ void func() &&; 完整的函数签名,需要考虑ref-qualifier,这里是&&。就像void func() const; 完整的函数签名需要 阅读全文
posted @ 2018-04-03 11:17 thomas76 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 考虑如下代码: 函数对象可以是模板化的operator(), lambda是否亦可以generic化呢? lambda返回一个lambda,实现函数式编程成为可能: 这不就是个bind1st吗?使用lambda实现的。有空时可以继续关注,函数式编程。 阅读全文
posted @ 2018-03-30 10:13 thomas76 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 变量模板。是函数模板,类型模板,别名模板之后,另一种模板。类S的静态成员变量S::var<int>的类型是const int 注意,V.T.只能定义在名字空间中,如下是错误的,因为那里不是名字空间: 而如下是正确的: 这里是全局名字空间,因此也是符合“定义在名字空间里”。 参考:http://en. 阅读全文
posted @ 2018-03-29 17:10 thomas76 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.poxiao.me/p/unpacking-a-tuple-to-call-a-function-in-cpp14/ 这里需要注意的是,函数的模板参数推演。C++03/98时,是单个实参,推导出单个模板类型,例如t推导出T。C++11/14开始,参数包也能推导了,例如 阅读全文
posted @ 2018-03-28 15:14 thomas76 阅读(1766) 评论(0) 推荐(1) 编辑
摘要: 参考:http://en.cppreference.com/w/cpp/language/namespace#Using-directives 第23行讲述了using-directive(以下简称U.D.)的第一个效应:把B名字空间虚拟的引入22行和25行包裹的块(block)。当第24行,遇到S 阅读全文
posted @ 2018-03-27 14:05 thomas76 阅读(466) 评论(0) 推荐(0) 编辑
摘要: C++17把共享锁纳入标准库。允许多个线程以共享方式持有读锁,只允许一个线程持有写锁。 第15行,在加持读锁后,即使sleep本线程也不会阻塞其它线程获取读锁(Shared locking)。但是会影响其它线程对写锁(Exclusive locking)的获取。因为写锁要独占方式获得锁,必须等待所有 阅读全文
posted @ 2018-03-26 14:47 thomas76 阅读(1042) 评论(0) 推荐(0) 编辑
摘要: 线程级别的生命期。使用C++11引入的关键字thread_local. 最终结果,gs在每个线程中,地址是独立的。 阅读全文
posted @ 2018-03-26 12:13 thomas76 阅读(1387) 评论(0) 推荐(0) 编辑