基于模板元编程技术的跨平台C++动态链接载入库。通过模板技术,使用者仅需通过简单的宏,就可以使编译器在编译期自己主动生成载入动态链接库导出符号的代码,无不论什么额外的执行时开销。 extern "C" { typedef int(*Proc_fnTestDll)(); typedef const c ...
分类:
编程语言 时间:
2017-06-03 18:12:42
阅读次数:
193
1、异常分为几种?如何区分? 异常分为编译期异常、运行期异常。编译期异常,必须要处理,否则编译无法通过。运行期异常可处理,可不处理,所有的运行期异常都是RuntimeException的子类。 2、如何得到当前工作目录? System.getProperty(“user.dir”); 3、Strin ...
分类:
其他好文 时间:
2017-06-03 17:20:32
阅读次数:
150
宏的使用完整代码如下: macrodemo.h文件: cpp代码如下: 在头文件中均有标记。 (1) 定义常量,该常量会在预编译期间将所有的MAX 替换为 1000. 但是不建议这样使用。因为该替换发生在预编译期间,不是编译期间。所以这个MAX没有存在在编译的符号表中。一旦出错,那么提示就是一个 1 ...
分类:
编程语言 时间:
2017-06-03 15:02:52
阅读次数:
428
1. decltype关键字 (1)auto所修饰的变量必须被初始化,编译器才能通过初始化来确定auto所代表的类型,即必须先定义变量。 (2)decltype可以在编译期推导出一个变量或表达式的结果类型(但不会真正计算表达式的值),并且使用这个结果定义新的变量。 【实例分析】获取表达式的类型 // ...
分类:
其他好文 时间:
2017-06-02 09:57:09
阅读次数:
371
受到Thinking in Java中静态引入(import static)的启发, Deolin也打算写一个方便自己的工具类,先从最简单的打印开始。 为了方便日后管理,代码以类库“commons-simplify”的形式托管到了Github。 工具类主要利用了 根据参数编译期的类型来选择哪个重载方 ...
分类:
其他好文 时间:
2017-05-30 20:56:09
阅读次数:
196
foreach是Java中的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,编译期间以特定的字节码或特定的方式来对这些语法进行处理。能够提高性能,并减少代码出错的几率。在Java中还有比如泛型、自动拆箱、自动装箱、内部类、枚举等等。foreach是用来对数组..
分类:
编程语言 时间:
2017-05-26 14:33:45
阅读次数:
194
变量被声明时类型称为静态类型,变量引用的真实类型叫做实际类型。jvm根据对象类型进行方法的选择就是分派,根据发生时期分为静态分派和动态分派。静态分派发生于编译期,动态分派发生于运行期,即重载和重写。需要注意的是方法的调用是根据对象的真实类型而非静态类型。 一个方法所属的对象叫做方法的接收者,它与方法 ...
分类:
其他好文 时间:
2017-05-25 23:25:48
阅读次数:
257
Java中的增强 for 循环 foreach foreach 是 Java 中的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,编译期间以特定的字节码或特定的方式来对这些语法进行处理。能够提高性能,并减少代码出错的几率。在 Java 中还有比如 泛型、自动拆箱、自动装箱、内部类 ...
分类:
编程语言 时间:
2017-05-25 14:39:18
阅读次数:
171
输出为4,因为decltype(*a)返回*a的类型,实际上是一个int&,我们就想有没有办法去掉这个引用 尝试1 我们引入了类remove_reference用于移除引用,在编译期间,推导出了类型T为int&,typedef T type中,type实际上就是类型int&,因此结果还是4 尝试2 ...
分类:
编程语言 时间:
2017-05-22 23:10:40
阅读次数:
1401
在 iOS 4.2 时,苹果推出了 ARC 的内存管理机制。这是一种编译期的内存管理方式,在编译时,编译器会判断 Cocoa 对象的使用状况,并适当的加上 retain 和 release,使得对象的内存被合理的管理。所以,ARC 和 MRC 在本质上是一样的,都是通过引用计数的内存管理方式。 然而 ...
分类:
移动开发 时间:
2017-05-19 20:14:27
阅读次数:
277