摘要:
下面的代码模仿gtest实现,主要说明了以下两点:ASSERT_*和EXPECT_*系列断言的原理和作用.gtest是怎样通过宏自动注册测试代码让其自动运行的. 1 #include 2 #include 3 #include 4 #include 5 6 7 #define ASSER... 阅读全文
摘要:
下面的代码模仿gtest实现,主要说明了以下两点:ASSERT_*和EXPECT_*系列断言的原理和作用.gtest是怎样通过宏自动注册测试代码让其自动运行的. 1 #include 2 #include 3 #include 4 #include 5 6 7 #define ASSER... 阅读全文
摘要:
阅读全文
摘要:
1. swift初始来源 没有了解过swift可以先参考Brec Victor的Inventing on Principle,Swift编程环境的大部分概念都源自于Brec这个演讲。2. swift是啥Swift是苹果在WWDC 2014发布的新的编程语言,这里引用The Swift Progra... 阅读全文
摘要:
c++11中关于什么是lvalue, 什么是rvalue, 什么是xvalue, 什么是prvalue, 什么是…一直搞得我晕头转向的, 今天下定决心一定要把它搞定, 写了一个程序来判断lvalue, rvalue, prvalue等 1 namespace test{ 2 3 template ... 阅读全文
摘要:
1. 什么是SFINAE在C++中有很多的编程技巧(Trick),SFINAE就是其中一种, 他的全义可以翻译为”匹配失败并不是一个错误(Substitution failure is not an error)“. 简单来说他就是专门利用编译器匹配失败的一种技巧.2. 案例比如我们想实现一个通用的... 阅读全文
摘要:
今天有一同学在群上聊到一个比较好玩的题目(本人看书不多,后面才知是《C++模板元编程》第二章里面的一道习题), 我也抱着试一试的态度去完成它, 这道题也体现了c++模板元编程的基础和精髓: 类型就是数据。题目如下所述:Write a ternary metafunctionreplace_typet... 阅读全文
摘要:
(原文:http://blog.think-async.com/2010/04/bind-illustrated.html)本文解释了bind是如何工作的。为了清晰,我对图中的语法作了一些简化(例如,省略函数调用操作符的参数类型),并且简化了bind的实现.1. bind可以用来将用户提供的需要一个... 阅读全文
摘要:
这里是最初始的版本,参考https://github.com/cplusplus-study/fork_stl/blob/master/include/bind.hpp 提供了最简洁的实现方式。第一部分是bind的实现代码, 第二部分是测试代码, 对bind的实现代码中有疑问或不明白的,可参考测试代... 阅读全文
|