条款可以改为——宁可以编译器替换预处理器,因为 #define 可能不被视为语言的一部分 #define ASPECT_RATIO 1.653 解决之道是以一个常量替换宏(#define) const double AspectRatio = 1.653; 作为语言常量,AspecetRatio 肯 ...
分类:
编程语言 时间:
2018-11-25 16:20:18
阅读次数:
192
在实现invoke之前,我们先看一下标准库种invoke的使用方式 template< class F, class... Args>std::invoke_result_t<F, Args...> invoke(F&& f, Args&&... args) noexcept(/* see belo ...
分类:
编程语言 时间:
2018-11-23 20:39:04
阅读次数:
368
元类 元类是类的类,是类的模板 元类是用来控制如何创建类的,正如类是创建对象的模板一样,而元类的主要目的是为了控制类的创建行为 元类的实例化的结果为我们用class定义的类,正如类的实例为对象(f1对象是Foo类的一个实例,Foo类是 type 类的一个实例) type是python的一个内建元类, ...
分类:
编程语言 时间:
2018-11-15 22:27:48
阅读次数:
200
什么是元类? 元类是类的类,是类的模板 元类是用来控制如何创建类的,正如类是创建对象的模板一样,而元类的主要目的是为了控制类的创建行为 元类的实例化的结果为我们用class定义的类,正如类的实例为对象(f1对象是Foo类的一个实例,Foo类是 type 类的一个实例) type是python的一个内 ...
分类:
编程语言 时间:
2018-11-05 00:10:51
阅读次数:
133
C++模板创造之初只是为了让c++程序员编程更简单,避免书写很多冗余代码,常常和c/c++中的宏做对比,但是在后续发展过程中,模板被证明是图灵完备的,也就是可以做一些元编程,让所谓的“程序”执行变成了由C++编译器来完成,让程序员可以很轻易写出各种DSL特性,交由编译器计算,最终生成非常高效可执行代 ...
分类:
编程语言 时间:
2018-10-11 11:33:49
阅读次数:
188
在动态web项目的开发中,经常需要动态生成HTML内容(如系统中的当前在线人数需要动态生成)。如果使用Servlet实现HTML页面数据的统计,则需要使用大量的输出语句。同时,如果静态内容和动态内容混合在一起,那么也将导致程序非常臃肿。为了客服Servlet的这些缺点,Oracle(Sun)公司推出 ...
分类:
Web程序 时间:
2018-10-04 22:59:51
阅读次数:
802
今天,看C++Template的时候看到那人写了一个Stack,于是乎,手痒,自己也写了一个,在拜读了STD文件和C++模板元编程某些小节之后,你们就看到了这篇代码。 经过上述一番经历之后,我重新写了myVector,使之更完善,更加服务于顶层结构,如:myStack myVector实现 栈没什么 ...
分类:
其他好文 时间:
2018-08-30 11:03:06
阅读次数:
171
1. C++风格数组初始化: 2. CPP别名: 3. auto 使用: 4. 函数模板的别名: 5. 收缩转换: 6. 二进制: 7. 常量表达式constexpr : 8. lambda 表达式: 9. 函数包装器: 10. 模板元 11. C++中的const : 12. 智能指针: 13. ...
分类:
编程语言 时间:
2018-08-18 21:45:56
阅读次数:
218
C++ template机制自身是一部完整的图灵机(Turing-complete):它可以被用来计算任何可计算的值。于是导出了模板元编程(TMP, template metaprogramming),创造出“在C++编译器内执行并于编译完成时停止执行”的程序。 41:了解隐式接口和编译期多态 所谓 ...
分类:
编程语言 时间:
2018-07-30 11:10:51
阅读次数:
150